2017-05-23 4 views
0

私のコードを実行すると、すべての変数がバリアントとして定義されているにもかかわらず、タイプの不一致エラーが発生し続ける。私は問題が何であるか分かりません。私はVBAの初心者ですので、何か助けていただければ幸いです!ありがとう!私は自分のコードを実行するときにタイプの不一致が続く

Sub drink_2() 
Columns("E:H").Insert shift:=xlToRight, copyorigin:=xlFormatFromLeftOrAbove 
Range("F6").value = "Drink Price" 
Range("G6").value = "Drink Revenue" 
Range("H6").value = "Gross Sales less Drink Revenue" 
Dim i As Variant 
Dim item As Variant 
Dim drink_price As Variant 
Dim wbk As Workbook 
Set wbk = Workbooks.Open("C:\Users\username\Documents\vlookup table drink prices.xlsx") 
Dim lookup_range As Variant 
lookup_range = wbk.Worksheets("Sheet1").Range("A:B").value 
i = 7 
Do While Cells(i, 1).value <> "" 
item = Cells(i, 1).value 
Cells(11, 1).value = item 
drink_price = Application.WorksheetFunction.VLookup(item, lookup_range, 2, False) 
zero_check = Application.WorksheetFunction.IfError(drink_price, 0) 
If IsError(Application.WorksheetFunction.VLookup(item, lookup_range, 2, False)) Then 
    Cells(i, 6).value = "" 
Else 
    Cells(i, 6).value = Application.WorksheetFunction.VLookup(item, lookup_range, 2, False) 
End If 
Cells(i, 7).Formula = Cells(i, 6).value * Cells(i, 5).value 
Cells(i, 8).Formula = Cells(i, 4).value - Cells(i, 7).value 
Range("F:G").NumberFormat = "#,##0.00" 
i = i + 1 
Loop 
Cells.EntireColumn.AutoFit 
End Sub 
+3

あなたがそのエラーを取得するラインどの上のコードの行にエラーが発生しない*** ?? *** –

+2

ワン?できるだけ多くの情報を提供してください。 –

+0

VLOOKUPはエラーを '.WorksheetFunction'で変数に渡しません。コードを停止します。あなたはあなたのvlookupsからその部分を削除する必要があります。 –

答えて

0

これはおそらく、問題の行です:

lookup_range = wbk.Worksheets("Sheet1").Range("A:B").value

あなたは範囲ではなく、値を取得する必要があるので、あなたが設定したキーワードを使用して値プロパティをドロップする必要があります。

set lookup_range = wbk.Worksheets("Sheet1").Range("A:B")