Excel 由于公式中有撇号,无法在VBA中使用间接公式
然而,我试图用VBA编写以下公式,因为公式中包含撇号,撇号后面的部分被注释掉。有人能帮忙吗Excel 由于公式中有撇号,无法在VBA中使用间接公式,excel,vba,excel-formula,apostrophe,excel-indirect,Excel,Vba,Excel Formula,Apostrophe,Excel Indirect,然而,我试图用VBA编写以下公式,因为公式中包含撇号,撇号后面的部分被注释掉。有人能帮忙吗 Dim LastcolGen As Long, lastrowfilter As Long Range(Cells(6, 10), Cells(lastrowfilter, LastcolGen)).Formula = _ "IF(J$4="FactTrancheValue",INDEX(INDIRECT(J$4),ROW()-4,MATCH(J$5,INDIRECT("'"&J$4&
Dim LastcolGen As Long, lastrowfilter As Long
Range(Cells(6, 10), Cells(lastrowfilter, LastcolGen)).Formula = _
"IF(J$4="FactTrancheValue",INDEX(INDIRECT(J$4),ROW()-4,MATCH(J$5,INDIRECT("'"&J$4&"'!"&"A1:JJ1"),0)),INDEX(INDIRECT(J$4),MATCH(INDIRECT(J$3&ROW()),INDIRECT("'"&J$4&"'!"&"A1:A999999"),0),MATCH(J$5,INDIRECT("'"&J$4&"'!"&"A1:JJ1"),0)))"
Range(Cells(6, 10), Cells(lastrowfilter, LastcolGen)).Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
谢谢,
AB试试这个(未测试)
(根据您的更新进行编辑)
将该公式设置为单个单元格时,我不会从VBA中得到任何错误(尽管公式本身返回#REF!)
如果这不起作用,请确保您的范围()
引用正确。尝试此操作(未测试)
(根据您的更新进行编辑)
将该公式设置为单个单元格时,我不会从VBA中得到任何错误(尽管公式本身返回#REF!)
如果这不起作用,请确保您的
范围()
参考是正确的。Cam您是否可以向我们展示您用于创建此函数的VBA代码?@AJD-如果您还需要什么,请告诉我。VBA字符串中的双引号需要通过将它们加倍来转义。Cam您是否可以向我们展示您用于创建此函数的VBA代码?@AJD-如果您需要,请告诉我任何其他内容。VBA字符串中的双引号需要通过将其加倍来转义。结果会导致以下错误:“应用程序定义的或对象定义的错误”。我现在无法测试-调试。将公式打印到即时窗格,然后复制并粘贴到工作表中-Excel将告诉您问题所在。好的,我尝试过,不太清楚在excel中如何使用引号。无论何时,只要您有时间,请帮助调试。谢谢!J4中的值是多少?看起来它应该是一个工作表名称,但是您有一个索引(间接(J$4),…
,它似乎不有效。dj4的值等于工作簿中的命名范围。导致以下错误:“应用程序定义的或对象定义的错误”。我现在无法测试-调试。将公式打印到即时窗格中,然后复制并粘贴到工作表中-Excel将告诉您问题所在。好的,我尝试过,但不太确定Excel中如何使用引号。只要您有时间,请帮助调试。非常感谢!J4中的值是多少?看起来应该是一个工作表name,但您有一个索引(间接(J$4),…
,它似乎不有效dj4的值等于工作簿中的命名范围。
Range(Cells(6, 10), Cells(lastrowfilter, LastcolGen)).Formula = _
"=IF(J$4=""FactTrancheValue"",INDEX(INDIRECT(J$4)," & _
"ROW()-4,MATCH(J$5,INDIRECT(""'""&J$4&""'!""&""A1:JJ1""),0))," & _
"INDEX(INDIRECT(J$4),MATCH(INDIRECT(J$3&ROW())," & _
"INDIRECT(""'""&J$4&""'!""&""A1:A999999""),0)," & _
"MATCH(J$5,INDIRECT(""'""&J$4&""'!""&""A1:JJ1""),0)))"