将Vookup与VBA中打开的窗口中定义的变量一起使用

时间:2016-12-24 02:30:35

标签: excel vba excel-vba

我想插入一个vlookup,它将行作为从打开的Excel窗口获取的定义变量。

我现在面临的问题是Vlookup正在返回活动工作簿中的行数(即“current.xlsm”)。它没有从“dump-data.xlsm”获取行数。

E.g。 “current.xlsm”中的总行数是8675.“dump-data.xlsm”中的总行数是5934.虽然我希望Vlookup公式将总行返回为5934,但它返回8675。 / p>

请帮忙!提前致谢

我目前的代码是:

Dim totalRows As Long

With Windows("dump-data.xlsm")
    totalRows = Range("A" & Rows.Count).End(xlUp).Row
End With

ActiveCell.FormulaR1C1 = 
    "=VLOOKUP(RC[-12],[dump-data.xlsm]Data!R1C1:R" & totalRows & "C37,1,FALSE)"

1 个答案:

答案 0 :(得分:2)

更改您的代码以引用正确的工作表

With Workbooks("dump-data.xlsm").Worksheets("Data")
    totalRows = .Range("A" & .Rows.Count).End(xlUp).Row
End With

除非您符合所指的工作表,否则RangeRows默认为ActiveSheet。并且With块不会更改哪个工作表处于活动状态,它只是提供语法快捷方式 - 即您可以键入.而不是Workbooks("dump-data.xlsm").Worksheets("Data").