2017-01-04 10 views
0

ワークブックBから同じ情報を引き出すワークブックAでvlookupを実行したいと思います。どちらのワークブックもすでに開いています。プログラムは、第三のワークブックC.ワークブックBからのワークブックAへの照会

の両方のブックの名前でなければならない

は同じではないので、私はそれを可変フォーマット(従って、プログラムは、我々が設定されたブックのために働くべきである)と範囲を与えますワークブック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

ここにコードがあります。それがあなたのために働くかどうか確認してください。自動入力が正しく機能しないため、オプションで最後の文字を識別して使用して終了する方がよいでしょう。

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 
関連する問題