ListObjects处出现运行时错误438。仅在旧版本的Excel上添加方法

ListObjects处出现运行时错误438。仅在旧版本的Excel上添加方法,excel,excel-2000,vba,Excel,Excel 2000,Vba,自从我开始使用ExcelVBA以来,已经有大约两周的时间了。我有一个sub,它将一系列数据转换为一个表: Sub RangeToTable(fileName, sheetname, rng, tblNm) With Sheets(sheetname) .ListObjects.Add(xlSrcRange, .Range(rng), , xlYes).Name = tblNm .ListObjects(tblNm).ShowHeaders = False

自从我开始使用ExcelVBA以来,已经有大约两周的时间了。我有一个sub,它将一系列数据转换为一个表:

Sub RangeToTable(fileName, sheetname, rng, tblNm)
    With Sheets(sheetname)
       .ListObjects.Add(xlSrcRange, .Range(rng), , xlYes).Name = tblNm
       .ListObjects(tblNm).ShowHeaders = False
       .ListObjects(tblNm).TableStyle = "TableStyleLight15"
    End With
End Sub
该子系统在我的开发机器上运行良好(Win7,Office2007)。但在运行Win XP和office 2000的实验室计算机上,我得到一个运行时错误438对象不支持Add方法中的此属性或方法。 我已经到处寻找解决方案,在微软网站上,这个问题的原因之一是版本不匹配,这在我的案例中是正确的。 你们能告诉我一个解决我问题的好办法吗? 有什么解决办法吗? 这是否意味着任何处理表(ListObjects)的宏都不能在不支持表的excel版本上运行? 非常感谢你的帮助, 谢谢
不幸的是,这是行不通的。现在的ListObjects是在Excel 2010中实现的,从2003年起就存在了

有关Excel 2010和2013,请参见:

2007年见:

2003年见:

对于2000及以上版本:不存在,因此需要手动编写代码

Chip Pearson在这里证实了这一点:
不幸的是,这是行不通的。现在的ListObjects是在Excel 2010中实现的,从2003年起就存在了

有关Excel 2010和2013,请参见:

2007年见:

2003年见:

对于2000及以上版本:不存在,因此需要手动编写代码

Chip Pearson在这里证实了这一点:

我相信这种类型的表是在Excel 2007中引入的……早期版本需要不同的宏。我相信这种类型的表是在Excel 2007中引入的……早期版本需要不同的宏@Jeeped@Rik斯波特尔,谢谢你们的回答…我确实用你们的回答来支持我,建议我的经理这是行不通的。更新实验室计算机似乎是我们唯一的解决办法。谢谢dd那么,用2000来编写同样的代码是可能的,但是它已经过时了,所以更新软件(实际上可能还有计算机)确实是个好主意@Jeeped@RikSportel,谢谢你们的回答……我确实用你们的回答来支持我,建议我的经理这是行不通的。更新实验室计算机似乎是我们唯一的解决办法。谢谢dd那么,用2000来编写同样的代码是可能的,但是它已经过时了,所以更新软件(实际上可能还有计算机)确实是个好主意。