Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.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 带有负行引用的R1C1格式结果为#REF!电子表格中的错误_Excel_Vba - Fatal编程技术网

Excel 带有负行引用的R1C1格式结果为#REF!电子表格中的错误

Excel 带有负行引用的R1C1格式结果为#REF!电子表格中的错误,excel,vba,Excel,Vba,VBA中的此公式: ActiveCell.FormulaR1C1 = _ "=IF(RC[-6]=""ADD"",CONCATENATE(""QUIET "",RC[-6],"" "",RC[-5],"" "",RC[-4],"" "",RC[-3],"" "",RC[-2]),IF(RC[-6]=""DEL"",CONCATENATE(""QUIET "",RC[-6],"" "",RC[-5],"" "",RC[-4]),IF(OR(**R[-1]C[-6]**=""ADD"

VBA中的此公式:

ActiveCell.FormulaR1C1 = _
        "=IF(RC[-6]=""ADD"",CONCATENATE(""QUIET "",RC[-6],"" "",RC[-5],"" "",RC[-4],"" "",RC[-3],"" "",RC[-2]),IF(RC[-6]=""DEL"",CONCATENATE(""QUIET "",RC[-6],"" "",RC[-5],"" "",RC[-4]),IF(OR(**R[-1]C[-6]**=""ADD"",**R[-1]C[-6]**=""DEL""),""//FacultyAG   EOJ"","""")))"
在单元格中得出此公式的结果:

=IF(RC[-6]="ADD",CONCATENATE("QUIET ",RC[-6]," ",RC[-5]," ",RC[-4]," ",RC[-3]," ",RC[-2]),IF(RC[-6]="DEL",CONCATENATE("QUIET ",RC[-6]," ",RC[-5]," ",RC[-4]),IF(OR(**#REF!**="ADD",**#REF!**="DEL"),"//FacultyAG   EOJ","")))

我可以手动修改forumla(相对寻址“on”),它可以正常工作。但每当VBA输入公式时,我都会得到这些#REF!错误。似乎是这些-6行引用。(-6是有效列(“1”)。

出现此问题的原因是将公式插入到第1行的单元格中

R[-1]C[-6]
指的是放置公式的单元格上方一行和左侧6个单元格,因此,当公式放置到第1行时,这意味着它引用的是第0行中的单元格,这是无效的。这会导致
#REF错误,即使您向下移动单元格(例如,通过在其上方插入标题行),也会出现
#REF无法更正,因为Excel不再知道它的意思


解决方案是确保最初放置公式的单元格是公式实际有效的单元格

出现问题的原因是将公式插入到第1行的单元格中

R[-1]C[-6]
指的是放置公式的单元格上方一行和左侧6个单元格,因此,当公式放置到第1行时,这意味着它引用的是第0行中的单元格,这是无效的。这会导致
#REF错误,即使您向下移动单元格(例如,通过在其上方插入标题行),也会出现
#REF无法更正,因为Excel不再知道它的意思


解决方案是确保最初放置公式的单元格是公式实际有效的单元格

您确定活动单元格不在第1行吗?放置公式后是否移动数据?放置公式后是否删除行?您肯定没有将公式放入第1行?(即试图引用第0行?)我应该说:我可以手动修改forumla(相对寻址“on”),它可以工作。但每当VBA输入公式时,我都会得到这些#REF!错误。这似乎是这些-6列参考。(-6是有效列(“1”)。公式位于第7列。当“相对寻址”处于启用状态时,第1列为A列。在放置公式后,我不会移动或删除列、行或单元格。当您看到
#REF?向上一行,左六列。第1栏(“A”)。VBA从第2行开始在同一列和几行中复制公式。是否确定活动单元格不在第1行?放置公式后是否移动数据?放置公式后是否删除行?您肯定没有将公式放入第1行?(即试图引用第0行?)我应该说:我可以手动修改forumla(相对寻址“on”),它可以工作。但每当VBA输入公式时,我都会得到这些#REF!错误。这似乎是这些-6列参考。(-6是有效列(“1”)。公式位于第7列。当“相对寻址”处于启用状态时,第1列为A列。在放置公式后,我不会移动或删除列、行或单元格。当您看到
#REF?向上一行,左六列。第1栏(“A”)。VBA从第2行开始,在同一列和几行中复制公式。