我想在工作簿A中执行vlookup,它将从工作簿B中提取相同的信息。两个工作簿都已打开。
该计划应该在第三本工作手册中。
两个工作簿的名称不一样,所以我给它一个可变格式(因此,程序应该适用于我们设置的任何工作簿),并且工作簿A或B中最后一条记录的范围可能会有所不同。
我有一个我记录的例子,但它不能按照我想要的方式工作。
在我的示例中,我从工作簿A中提取工作簿B.我还因为空格而修剪了工作簿B中的查找值,我希望它与工作簿A中的查找值匹配(大多数没有空格,不确定总而言之)。是否还有一种方法可以在工作簿A中修剪查找值?
Windows("test A.xlsx").Activate
Windows("test B.xlsx").Activate
ActiveCell.FormulaR1C1 = "=VLOOKUP(trim(RC[-1]),'[test A.xlsx]Sheet1'!C1:C2,2,FALSE)"
Range("B1").Select
Selection.AutoFill Destination:=Range("B1:B30000")
Range("B1:B30000").Select
Range("B1").Select
Windows("mac.xlsm").Activate
答案 0 :(得分:1)
这是代码。检查它是否适合你。自动填充功能无法正常工作,因此您可以更好地识别lastrow并使用和结束选项。
Sub vlookupexample()
Dim FileA As Workbook
Dim FileB As Workbook
Dim fileALastrow As Long
Dim FileBLastrow As Long
Set FileA = Workbooks.Open("C:\Users\raja\Desktop\fileA.xlsx")
Set FileB = Workbooks.Open("C:\Users\raja\Desktop\fileB.xlsx")
FileA.Activate
fileALastrow = FileA.Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row
FileB.Activate
FileBLastrow = FileB.Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row
FileA.Activate
FileA.Sheets("Sheet1").Range("B2").Select
With FileA.Sheets("Sheet1").Range("B2:B" & fileALastrow)
.Formula = "=VLOOKUP(RC[-1],[fileB.xlsx]Sheet1!C1:C2,2,0)"
.Value = .Value
End With
Msgbox "Process Completed"
End Sub