Excel VBA动态vlookup(2个工作簿)

时间:2018-04-14 19:26:28

标签: excel vba excel-vba

我每天使用两个更改文件名的工作簿,并且必须在第1册上执行vlookup,从book2中提取数据,在第1册中过滤N / A,将N / A复制并粘贴到book1中的另一个工作表中并保存为活动片。

以下是我的代码到目前为止...请帮忙修复。

Sub todeleteaging1()
    Range("T1").Select
    ActiveCell.FormulaR1C1 = "vlookup"
    Range("T2").Select
    Columns("S:S").EntireColumn.AutoFit
    Range("T2").Select
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-16], agingtest0413.csv!C1, 1, FALSE)"
    Range("T2").Select
    Selection.Copy
    Range("S2").Select
    Selection.End(xlDown).Select
    Range("T14039").Select
    ActiveSheet.Paste
    Range(Selection, Selection.End(xlUp)).Select
    ActiveSheet.Paste
    Range("T14039").Select
    Selection.End(xlUp).Select
    Application.CutCopyMode = False
    Selection.AutoFilter
    ActiveSheet.Range("$A$1:$T$14039").AutoFilter Field:=20, Criteria1:="=#N/A" _
        , Operator:=xlOr, Criteria2:="=#N/A"
    Range("A1").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Sheets.Add After:=ActiveSheet
    Range("A1").Select
    ActiveSheet.Paste
    Range("C6").Select
    Application.CutCopyMode = False
    ChDir "C:\Users\RRF - 113\Downloads"
    ActiveWorkbook.SaveAs fileName:= _
        "C:\Users\RRF - 113\Downloads\todelete20180413.csv", FileFormat:=xlCSV, _
        CreateBackup:=False
    Sheets("Invoice Aging Upsert_04_12_2018").Select
    Range("L11898").Select
    ActiveSheet.Range("$A$1:$T$14039").AutoFilter Field:=20
    Sheets("todelete20180413").Select
End Sub

1 个答案:

答案 0 :(得分:1)

您的Vlookup永远不会使用$A$2:$A之类的查找引用。另外,如果从查阅列返回值,Vlookup的重点是什么?使用Power查询可以更轻松地完成整个练习。打开这两个文件并将它们合并到来自另一个文件的一列和一列的列T上。