2016-11-03 6 views
-1

非常にあなたの助けに感謝します。私はBをワークシートにワークシートAからVLOOKUPしようとしていると私はそれをこのフォーラムのコード例を見つけたが、急にエラーが発生しました - 実行時エラー「1004」:object_Worksheetのメソッド「範囲は」」VlookupのワークシートAからワークシートへのエラー

Sub Sample() 
    Dim wbThis As Workbook, wbThat As Workbook 
    Dim wsThis As Worksheet, wsThat As Worksheet 
    Dim aCell As Range 

    Set wbThis = ThisWorkbook 
    '~~> Let's say this is the sheet where you want the result 
    '~~> Change name as applicable 
    Set wsThis = wbThis.Sheets("Sheet1") 

    '~~> Change path as applicable 
    Set wbThat = Workbooks.Open("C:\Users\Fahmi\Desktop\VBA TESTING\Template.xlsx") 
    Set wsThat = wbThat.Sheets("CtyAccesCode") 

    With wsThis 
     For Each aCell In .Range("H2:H" & LastRow) 


      If Len(Trim(.Range("AD" & aCell.Row).Value)) <> 0 Then 
       .Cells(aCell.Row, 28) = Application.WorksheetFunction.VLookup(_ 
             aCell.Value, wsThat.Range("A1:B13"), 2, 0) 
      End If 
     Next aCell 
    End With 

    wbThat.Close (False) 
End Sub 
を失敗しました事前にこの行の

とエラー

and the error on this line

感謝!

+1

問題は、コードが決して宣言せず、変数 "LastRow"に値を割り当てないため、基本的に "H2:H0の各セルに対して"と言っています。また、H0は有効なセル参照ではないため、 。 – tigeravatar

答えて

0

あなたは決してlastRowを宣言しませんでした。そこにそれを行うにはよりエレガントと防弾方法がありますが、迅速なハックは、あなたの努力は、このようなものになる可能性があり続けるために:あなたがここに実際の最後の行を見つけるより多くの防弾方法を見つけることができます

Dim lastRow As Integer 
lastRow = wsThis.UsedRange.Rows.Count 

How can I find last row that contains data in the Excel sheet with a macro?

しかし、ワークシートの内容によっては、よりシンプルで透明な方法があるかもしれません。

関連する問題