我需要在VBA中构建一个Excel公式,它使用相邻的单元格值作为单元格引用的一部分来创建查找字符串。
Excel公式运行良好,位于下方。转换它在VBA中的使用证明是困难的,我怀疑是因为公式的连接部分中的单引号。
我已经录制了一个用于创建公式的宏,但如果我尝试运行它,则会导致调试错误。
我仔细观察过,可以看到问题经常出现,但我无法找到合适的答案。
Excel公式:
=IFERROR(SUM(INDEX(INDIRECT(CONCATENATE("'",$S2,"'","!$a$2:$ap$500")),MATCH(Summary!$C2,INDIRECT(CONCATENATE("'",$S2,"'","!$c$2:$c$500")),0),MATCH(Summary!U$1,INDIRECT(CONCATENATE("'",$S2,"'","!$1:$1")),0))),0)
记录为宏的公式:
Str = "=IFERROR(SUM(INDEX(INDIRECT(CONCATENATE(""'"",$S2,""'"",""!$a$2:$ap$500"")),MATCH(Summary!$C2,INDIRECT(CONCATENATE(""'"",$S2,""'"",""!$c$2:$c$500"")),0),MATCH(Summary!X$1,INDIRECT(CONCATENATE(""'"",$S2,""'"",""!$1:$1"")),))),0)"
在VB中运行时的结果:
"=IFERROR(SUM(INDEX(INDIRECT(CONCATENATE("'",$S2,"'","!$a$2:$ap$500")),MATCH(Summary!$C2,INDIRECT(CONCATENATE("'",$S2,"'","!$c$2:$c$500")),0),MATCH(Summary!U$1,INDIRECT(CONCATENATE("'",$S2,"'","!$1:$1")),))),0)"
如果我将VB公式的结果粘贴到Excel中,它可以正常工作。
由于