特定の製品コード(列a)の値を1週間に対応するように検索したい(行1に数値が記載されています)。週コード(1行目)は、ここに表示されているとおり、毎週のシートを持つワークブックを参照します。私はそのワークブックに行き、正しいシートにアクセスし、製品コードを見つけて、列Lから対応するセルを引き出したいと思います。これを書く方法はわかりません。
私は約500週間のコードと500の製品コードを持っているので、マクロが必要だと思っています。シート名の参照として列見出しを使用する
例:セルB2では、NPPPに対応する「Combined Performance Tracking.xlsx」のシート40111、列Lからデータを探したいとします。
私はこれまでに書かれているが、私はそれを実行したときに、私のインデックスマッチが問題として白羽されます。任意のアイデアをどのようにこれを修正するには?
Sub populate()
Dim ws As Worksheet
Dim count
Dim count2
Dim stock_code
Dim rep
Dim sheet_name As String
ws = Sheets("Sheet3")
For count = 2 To 140
sheet_name = ws.Cells(1, count)
For count2 = 2 To 873
stock_code = ws.Cells(count2, 1)
Workbooks("Combined Performance tracking.xlsx").Activate
For rep = 1 To (Worksheets.count)
If sheet_name = Sheets(rep).Name Then
index($a$5:$az$800, match(stock_code, $A$5:$A$800, 0), match("uber", $a$5:$az$5, 0)
ActiveCell.Select
ActiveCell.Copy
Workbooks("Jody Project Final.xlsm").Activate
Worksheets("sheet3").Cells(count2, count).Activate
ActiveCell.Select
ActiveCell.Paste
End If
Next
Next
Next
End Sub
インデックスはさまざまな意味で正しい構文ではなく、結果を得るために変数に割り当てる必要があります。また、セルのドラッグで数式を使用できるかもしれませんが(マクロはより効率的です) –
揮発性の[間接関数](https://support.office.com/en-us)を組み込む必要があります/ article/indirect-function-21f8bcfc-b174-4a50-9dc6-4dfb5b3361cd)を[INDEX]に追加します(https://support.office.com/en-us/article/index-function-0ee99cef-a811-4762-8cfb -a222dd31368a)/ [MATCH](https://support.office.com/en-us/article/match-function-0600e189-9f3c-4e4f-98c1-943a0eb427ca)関数ペアをネイティブ関数として使用することはできますが、 [WorksheetFunctionオブジェクト](https://msdn.microsoft.com/en-us/library/office/ff834434.aspx)で何かを構築してください.. – Jeeped
また、シートがブックに存在することは確実ですか? –