我有2个excel文件:
barkod.xlsx
campaign.xlsx
我需要在barkod.xlsx中执行vlookup命令。我想通过campaign.xlsx查找barkod.xlsx中的E列-A:B列。 我还尝试将公式加倍拖动到末尾的E的最后一个值。结果将写在barkod.xlsx的F列中。
我尝试使用以下代码:
Private Sub CommandButton5_Click()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim x As Workbook
Dim y As Workbook
'## Open all workbooks first:
Set x = Workbooks.Open("C:\Users\mammadov.ali\Desktop\macros\barkod.xlsx")
Set y = Workbooks.Open("C:\Users\mammadov.ali\Desktop\macros\csv.csv")
Set q = Workbooks.Open("C:\Users\mammadov.ali\Desktop\macros\campaign.xlsx")
'## Clear the workbook first:
y.Sheets("csv").Range("A:M").Clear
'## Insert the column in the barkod file:
x.Sheets("barkod").Range("F1").EntireColumn.Insert
'## Insert the column header in the barkod file:
x.Sheets("barkod").Range("E1").Offset(0, 1).Value = "Discounts"
With x.Sheets("barkod").Range("F2")
.FormulaR1C1 = "=VLOOKUP(RC[-1], [campaign.xlsx]Sheet1!RC[-5]:RC[-4], 2, 0)"
.AutoFill Destination:=x.Sheets("barkod").Range("F3")
End With
这2天让我很挣扎。任何帮助将不胜感激。 我得到的是它没有显示正确的结果,而仅对:A2:B2执行vlookup。在运行过程中也会发生错误。
答案 0 :(得分:1)
您必须:
从[campaign.xlsx]Sheet1!RC[-5]:RC[-4], 2, 0)"
具有AutoFill
方法的目标范围包含源范围
如下:
With x.Sheets("barkod").Range("F2")
.FormulaR1C1 = "=VLOOKUP(RC[-1], [campaign]Sheet1!C[-5]:C[-4], 2, 0)"
.AutoFill Destination:=.Resize(2) ' this will autofill F2 and F3
End With
如果您要自动填充F列中的单元格,而不是E列中的非空值,则可以使用:
.AutoFill Destination:=.Resize(WorksheetFunction.CountA(.Offset(, -1).EntireColumn))