我在尝试修复它时出现了另一个问题,并且在此代码出现问题之前。在这行代码,代码有错误:无法获取工作表功能类的vlookup属性
If Not (IsError(Application.WorksheetFunction.VLookup(item, lookup_range, 2, False))) Then
我得到的错误无法获取WorksheetFunction类”
整个代码的VLOOKUP属性下方。感谢您的帮助!
Sub code()
Columns("E:G").Insert shift:=xlToRight, copyorigin:=xlFormatFromLeftOrAbove
Range("E6").value = "Drink Price"
Range("F6").value = "Drink Revenue"
Range("G6").value = "Gross Sales less Drink Revenue"
Dim i As Variant
Dim item As Variant
Dim lookup_range As Range
Dim rev_wksht As Worksheet
Dim rev_wbk As Workbook
Dim vlkup_wbk As Workbook
Set rev_wksht = ActiveWorkbook.Sheets(1)
Set vlkup_wbk = Workbooks.Open("C:\Users\user\Documents\vlookup table drink prices.xlsx")
Set lookup_range = vlkup_wbk.Worksheets("Sheet1").Range("A:B")
i = 7
Do While rev_wksht.Cells(i, 1).value <> ""
Set item = rev_wbk.Sheets(1).Cells(i, 1).value
If Not (IsError(Application.WorksheetFunction.VLookup(item, lookup_range, 2, False))) Then
rev_wksht.Cells(i, 5).value = Application.WorksheetFunction.VLookup(item, lookup_range, 2, False)
rev_wksht.Cells(i, 6).Formula = rev_wksht.Cells(i, 11).value * rev_wksht.Cells(i, 5).value
rev_wksht.Cells(i, 7).Formula = rev_wksht.Cells(i, 4).value - rev_wksht.Cells(i, 6).value
ElseIf (IsError(Application.WorksheetFunction.VLookup(item, lookup_range, 2, False))) Then
rev_wksht.Cells(i, 5).value = Empty
End If
i = i + 1
Loop
rev_wksht.Range("F:G").NumberFormat = "#,##0.00"
rev_wksht.Cells.EntireColumn.AutoFit
End Sub
尝试application.vlookup – Phil
谢谢你,菲尔,工作!如果你不介意回答,但Application.VLookup和Application.worksheet有什么区别。 VLOOKUP?为什么在工作表部分不在时,vlookup能够工作? – Excel