macros在Excel 2013中运行良好,但在2007年没有

我正在使用下面的代码

Range("AI2").Select ActiveCell.FormulaR1C1 = "=SUM(Table3[@[Column3]:[Column" & v & "]])"

它在我的系统中工作正常。 但是,当我尝试在我的公司的系统上运行它具有优秀2007年,它给运行时错误。

请为Excel 2007尝试以下操作

  Range("AI2").Select ActiveCell.FormulaR1C1 = "=SUM(Table3[[#This Row],[Column3]]:[Column" & v & "]])" 

@语法只在Excel 2010中引入 ,所以Excel 2007不理解它。 另一方面,Excel 2010中已弃用[#This Row]语法,并在多行表中自动replace :

#This Row@@[Column Name]

只是与公式相同的行中的单元格。 这些说明符不能与任何其他特殊项目说明符组合。 使用它们强制引用的隐式交集行为或重写隐式交集行为并引用列中的单个值。

Excel自动将#This Row说明符更改为具有多行数据的表中较短的@说明符。 但是,如果您的表只有一行,则Excel不会replace#This Row说明符,这会在添加更多行时导致意外的计算结果。 为避免计算问题,请确保在input任何结构化参考公式之前,在表格中input多行。

您可能应该使用old-fashion =SUM(A2:C2)样式引用使其在多个版本的Excel中兼容。