ListObjects处出现运行时错误438。仅在旧版本的Excel上添加方法
自从我开始使用ExcelVBA以来,已经有大约两周的时间了。我有一个sub,它将一系列数据转换为一个表: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
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来编写同样的代码是可能的,但是它已经过时了,所以更新软件(实际上可能还有计算机)确实是个好主意。