2016-02-12 161 views
1

自從我開始使用excel vba以來已經有大約2周的時間了。我有一系列的數據轉換成表格的子:僅在舊版Excel上的ListObjects.Add方法運行時錯誤438

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的,處2007)。但在運行Win XP和Office 2000的實驗室計算機上,出現運行時錯誤438對象在Add方法中不支持此屬性或方法。 我已經搜索了一個解決方案,並在MS網站上解決這個問題的原因之一是版本不匹配,這在我的情況是正確的。 你們可以請讓我知道我的問題的一個很好的解決方案? 有沒有解決辦法? 這是否意味着任何處理表(ListObjects)的宏,我將無法在不支持表的Excel版本上運行? 感謝您的幫助, 謝謝, DD。

+0

我相信這種類型的表是在Excel 2007中引入了......您需要的早期版本不同的宏。 –

回答

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和更早的:不存在,所以你需要手動編碼。

芯片皮爾森證實了這一點的位置: http://www.excelforum.com/excel-general/485029-listobject-in-excel-2000-a.html

+0

@ Jeeped @ Rik Sportel,謝謝你們的回答......我確實使用你的回答來支持我,告訴我的經理這是行不通的。更新我們的實驗室電腦似乎是我們唯一的解決方案。謝謝! - DD – user5916275

+0

嗯,可以對2000年的代碼做同樣的事情,但是如此過時,更新軟件(甚至可能是電腦)確實是一個好主意。 –

相關問題