【问题标题】:VBA: Using VLookUp to Set Dynamic Values in loop?VBA:使用 VLookUp 在循环中设置动态值?
【发布时间】:2018-01-10 01:01:38
【问题描述】:

这里是新的 VBA 用户...

我已经设置了一个宏,它作为一个循环为文件夹中的每个文件运行。

在宏的一部分中,有一个方程式,其中包含一个对于每个文件都不同的值。

这是等式(每个文件变化的值是 0.2483,其他一切保持不变):

ActiveCell.FormulaR1C1 = "=(((" & signal_array(Element, 1) & ")-
R[-83]C)/R[-85]C)*1000*0.2483"

我已经建立了一个表格,列出了另一个工作簿中的每个文件名及其对应的值。我试图在方程中使用 vLookUp 来根据文件名查找值 - 其文件处于活动状态。

这是我目前所拥有的,为此我收到“运行时错误:1004”:

ActiveCell.FormulaR1C1 = "=(((" & signal_array(Element, 1) & ")-
R[-88]C)/R[-90]C)*1000*(=VLOOKUP(" & ActiveWorkbook.Name & ",'[Calibration 
Curves.xlsm]Sample Weights'!A2:B10,2,FALSE))"

关于如何完成这项工作的建议?

【问题讨论】:

    标签: vba excel loops vlookup


    【解决方案1】:

    尝试去掉公式中的=,同时使用一致的单元格表示法(即不要将 A1 表示法与 R1C1 表示法混合):

    ActiveCell.FormulaR1C1 = "=(((" & signal_array(Element, 1) & ")-
    R[-88]C)/R[-90]C)*1000*(VLOOKUP(" & ActiveWorkbook.Name & ",'[Calibration 
    Curves.xlsm]Sample Weights'!R2C1:R10C2,2,FALSE))"
    

    【讨论】:

    • @YowE3K 我注意到了,是的,指出这一点很重要!再次感谢-
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-24
    • 1970-01-01
    • 2011-10-29
    • 1970-01-01
    相关资源
    最近更新 更多