vlookup to workbook A from workbook B.

时间:2017-01-04 01:34:55

标签: excel vba vlookup

我想在工作簿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

1 个答案:

答案 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