由于公式中的撇号,无法在 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()
参考是正确的。
我想在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()
参考是正确的。