Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 由于公式中有撇号,无法在VBA中使用间接公式_Excel_Vba_Excel Formula_Apostrophe_Excel Indirect - Fatal编程技术网

Excel 由于公式中有撇号,无法在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&

然而,我试图用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&"'!"&"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)))"