无法调用macros

我正在使用Excel 2010,我一直无法调用macros。 我有三张工作表,其中一张显示我的图表(工作表1),其中显示了一张dynamic图表,一张原始数据input工作表(工作表2),最后一张工作表,数据通过公式从原始数据格式化表3)。

在表中插入新行的macros如下所示:

Sub SBTrend() ' ' SBTrend Macro ' ' Sheets("Sheet 1").Select Selection.ListObject.ListRows.Add AlwaysInsert:=True Range("BA10").Select End Sub 

我必须在Sheet 3中调用macros的代码如下所示:

 Private Sub Worksheet_Calculate() Static OldVal As Variant If Range("A9").Value <> OldVal Then OldVal = Range("A9").Value Call SBTrend End If End Sub 

但是,我总是面对错误“运行时错误'91':对象variables或块variables未设置。 而当我debugging,这条线被突出显示:

 Selection.ListObject.ListRows.Add AlwaysInsert:=True 

我会很感激任何和所有我能得到的帮助。 谢谢大家。

您需要引用ListObjects集合。

如果在工作表上只有一个表,那么可以通过它的索引来引用表

 With Sheets("Sheet 1") .Select .ListObjects(1).ListRows.Add AlwaysInsert:=True End With Range("BA10").Select 

如果有多个你应该通过它的名字引用表

 With Sheets("Sheet 1") .Select .ListObjects("Table1").ListRows.Add AlwaysInsert:=True End With Range("BA10").Select