宏在2013年的excel中运行良好,但在2007年没有

时间:2016-05-28 07:31:10

标签: excel excel-vba excel-formula vba

我正在使用以下代码

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

它在我的系统中运行良好。但是,当我尝试在我公司的excel 2007系统上运行它时,它会产生运行时错误。

2 个答案:

答案 0 :(得分:1)

@语法仅为introduced in Excel 2010,因此Excel 2007无法理解。另一方面,{2010}中不推荐使用[#This Row]语法并获取automatically replaced in multi -line tables

  

#This Row@@[Column Name]

     

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

     

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

您可能应该使用旧式=SUM(A2:C2)样式引用,以使其与多个版本的Excel兼容。

答案 1 :(得分:0)

请尝试以下Excel 2007

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