仅在旧版本的Excel上,在ListObjects.Add方法上运行时错误438

时间:2016-02-12 00:55:47

标签: excel-vba excel-2000 vba excel

自从我开始研究excel vba以来已经有两周了。我有一个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

这个子程序在我的开发机器上运行良好(Win 7,Office 2007)。但是在运行Win XP和office 2000的实验室计算机上,我得到运行时错误438对象不支持Add方法中的此属性或方法。 我一直在寻找解决方案,在MS网站上,这个问题的原因之一是版本不匹配,这在我的情况下是正确的。 你能告诉我一个解决我问题的好方法吗? 有没有工作? 这是否意味着任何处理表(ListObjects)的宏,我都不能在不支持表的excel版本上运行? 感谢您的帮助, 谢谢, DD

1 个答案:

答案 0 :(得分:0)

不幸的是,这不起作用。今天的ListObjects在Excel 2010中实现,从2003年开始存在。

对于Excel 2010和2013,请参阅: https://msdn.microsoft.com/en-us/library/office/ff195678(v=office.14).aspx

2007年见: https://msdn.microsoft.com/en-us/library/bb223938(v=office.12).aspx

2003年见: https://msdn.microsoft.com/en-us/library/office/aa174247(v=office.11).aspx

2000年及以后:不存在,因此您需要手动编码。

Chip Pearson在此确认: http://www.excelforum.com/excel-general/485029-listobject-in-excel-2000-a.html