由于公式中的撇号,无法在 VBA 中使用 INDIRECT 公式

Unable to use INDIRECT formula in VBA due to apostrophe in formula

我想在VBA中写出下面的公式,但是,由于公式中包含一个撇号,撇号后面的部分被注释掉了。有人可以帮忙吗?

Dim LastcolGen As Long, lastrowfilter As Long 

Range(Cells(6, 10), Cells(lastrowfilter, LastcolGen)).Formula = _
 "IF(J="FactTrancheValue",INDEX(INDIRECT(J),ROW()-4,MATCH(J,INDIRECT("'"&J&"'!"&"A1:JJ1"),0)),INDEX(INDIRECT(J),MATCH(INDIRECT(J&ROW()),INDIRECT("'"&J&"'!"&"A1:A999999"),0),MATCH(J,INDIRECT("'"&J&"'!"&"A1:JJ1"),0)))" 
Range(Cells(6, 10), Cells(lastrowfilter, LastcolGen)).Select 
Selection.Copy 
Selection.PasteSpecial Paste:=xlPasteValues

谢谢, AB

试试这个(未测试)

Range(Cells(6, 10), Cells(lastrowfilter, LastcolGen)).Formula = _
    "=IF(J=""FactTrancheValue"",INDEX(INDIRECT(J)," & _
    "ROW()-4,MATCH(J,INDIRECT(""'""&J&""'!""&""A1:JJ1""),0))," & _
    "INDEX(INDIRECT(J),MATCH(INDIRECT(J&ROW())," & _
    "INDIRECT(""'""&J&""'!""&""A1:A999999""),0)," & _
    "MATCH(J,INDIRECT(""'""&J&""'!""&""A1:JJ1""),0)))"

(根据您的更新进行编辑)

将该公式设置为单个单元格时,VBA 没有出现任何错误(尽管公式本身 returns #REF!)

如果这不起作用,请确保您的 Range() 参考是正确的。