2017-07-05 5 views
0

これは、各ワークシートをループし、VLOOKUP式(閉じたワークブックを参照する)を挿入します。コードは最初のシートから始まり、対応するワークブックを見つけて開き、VLOOKUPを実行してから次のシート/対応するワークブックに移動します。私がObjectエラーに遭遇する場所である.Cellsを押すまで、すべてが機能します。私は何が欠けていますか?このマクロを元のワークブックから実行してから、外部ワークブックを開きます。単純なVBAスローイングオブジェクトエラー1004

For Each ws In ThisWorkbook.Worksheets 
    If (ws.Name <> "Sheet1") And (ws.Name <> "Sheet2") Then 
     Set wbPath2 = Workbooks.Open("C:\MyDirectory\MyFile1.csv") 
     sourceSheet = "[MySheet.csv]" 

     With ws 
      .Cells(Application.WorksheetFunction.Match("Account1", .Range("A:A"), 0), Application.WorksheetFunction.Match(ComboBox1.Value & " " & Year(Date), .Range("A6:BZ6"), 0)).Formula = "=VLOOKUP(""Account1 Service"",'" & Root & sourceSheet & ws.Name & " " & monthNumber & "." & lastDay & "." & Format(Now(), "yy") & "'!$A:$G,4,FALSE)" 
+0

'Application.WorksheetFunction.Match(" Account1 "、.Range(" A:A ")、0)'と 'Application.WorksheetFunction.Match(ComboBox1.Value&" "&Year(Date)、.Range ( "A6:BZ6")、0)をウォッチウィンドウに表示します。 '.Cells'がエラーに遭遇したときのそれぞれの値は? – Jordan

+0

また、数式文字列に 'Debug.Print'を使って正しい式が与えられているかどうか確認してください。 (今すぐ)、 "yy"、&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )& "'!$ A:$ G、4、FALSE)" – Jordan

+0

これらの式をウォッチウィンドウに追加すると、何も変わらず、何も教えてくれません。値は「文脈で定義されていない式」です。また、どこにDebug.Printを置くべきですか?新しいラインで、またはVLOOKUPと一直線に並んでいますか? –

答えて

0

オブジェクトはComboBox1.Valueのようです。 シートコードでは、コンボボックスを使用することができます。しかし、モジュールでは不可能です。したがって、obleObjectとリンク・セルを使用してください。セル値を取得します。

Dim ws As Worksheet 
Dim obj As OLEObject 
Dim strCombo As String 
For Each ws In ThisWorkbook.Worksheets 
    If (ws.Name = "Sheet1") Or (ws.Name = "Sheet2") Then 
    Else 
     Set wbPath2 = Workbooks.Open("C:\MyDirectory\MyFile1.csv") 
     sourceSheet = "[MySheet.csv]" 

     With ws 
      k = .Name 
      Set obj = .OLEObjects("ComboBox1") 
      obj.LinkedCell = "q1" 'your blank cell link ; this link "q1" cell 
      strCombo = .Range("q1") 
      .Cells(Application.WorksheetFunction.Match("Account1", .Range("A:A"), 0), Application.WorksheetFunction.Match(strCombo & " " & Year(Date), .Range("A6:BZ6"), 0)).Formula = "=VLOOKUP(""Account1 Service"",'" & Root & sourceSheet & ws.Name & " " & monthNumber & "." & lastDay & "." & Format(Now(), "yy") & "'!$A:$G,4,FALSE)" 
      .Range("q1").Clear 
     End With 
    End If 

Next 
+0

ws.ComboBox1.Valueは"データメンバーが見つかりません "というエラーを生成します –

+0

@SeanKelly、ユーザーフォーム? –

+0

シートに入っています –

0

私のファイルパスポインタで何かを連結するのを忘れてしまいました。デバッグのヒント@Jordanに感謝します。