1

自从我开始研究 excel vba 以来已经有大约 2 周的时间了。我有一个将一系列数据转换为表格的子程序:

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 的实验室计算机上,我在 Add 方法中收到运行时错误 438 对象不支持此属性或方法。我已经四处寻找解决方案,并且在 MS 网站上,此问题的原因之一是版本不匹配,这在我的情况下是正确的。你们能告诉我一个解决我问题的好方法吗?有解决办法吗?这是否意味着任何处理表格(ListObjects)的宏,我将无法在不支持表格的 excel 版本上运行?感谢您的帮助,谢谢,DD。

4

1 回答 1

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

于 2016-02-12T16:04:29.547 回答