自从我开始研究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
答案 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