【发布时间】:2015-10-01 10:23:39
【问题描述】:
我正在使用以下代码来查找变量工作簿并检索该数据。它将公式输入到从其他工作簿中获取数据的单元格区域中。我的问题是,如果我在公式中使用 R1C1 样式来指示我要搜索的其他工作簿中的范围,VBA 会像 A1 样式一样输入公式。那么公式将不会返回正确的信息。
但是,如果我将那部分代码保留为 A1 样式,则 VBA 在将范围输入单元格时会在范围中添加括号,并且公式会失败。
这是代码行:
Range("R8:R" & FinalRow).FormulaR1C1 = "=IFERROR(HLOOKUP(IF(RIGHT(RC[-13],2)=""B4"",INDEX('[" & MyNM & " " & MyCC & " " & MyUnit & " EVMS.xlsm]" & myUA _
& "'!D:E,MATCH(RC4,'[" & MyNM & " " & MyCC & " " & MyUnit & " EVMS.xlsm]" & myUA & "'!E:E,0),1)," _
& "INDEX(INDIRECT(""'[" & MyNM & " " & MyCC & " " & MyUnit & " EVMS.xlsm]""&RC5&""'!D:E"",TRUE)," _
& "MATCH(RC4,INDIRECT(""'[" & MyNM & " " & MyCC & " " & MyUnit & " EVMS.xlsm]""&RC5&""'!E:E"",TRUE),0),1))" _
& ",'[" & MyNM & " " & MyCC & " " & MyUnit & " EVMS.xlsm]SOP'!R1C3:R4C41,4,FALSE),""NP"")"
结果如下:
=IFERROR(HLOOKUP(IF(RIGHT(E13,2)="B4",INDEX('[5P1B 4520 5015 EVMS.xlsm]UA1B'!D:(E),MATCH($D13,'[5P1B 4520) 5015 EVMS.xlsm]UA1B'!E:(E),0),1),INDEX(INDIRECT("'[5P1B 4520 5015 EVMS.xlsm]"&$E13&"'!D:E",TRUE),MATCH($D13,INDIRECT("'[5P1B 4520 5015 EVMS.xlsm]"&$E13&"'!E:E",TRUE),0),1)),'[5P1B 4520 5015 EVMS.xlsm]SOP'!$C$1:$AO$4,4,FALSE),"NP")
【问题讨论】: