在VBA Excel

时间:2016-11-02 16:56:30

标签: excel vba excel-vba

所以我将一堆数据导入到工作表中,然后我想把它变成一个表。我不知道会有多少行数据。这段代码几天前工作正常,但我想我可能会在不知不觉中改变了一些东西。这是代码:

Sheets("Enrollment Data Aggregate").ListObjects.Add(xlSrcRange, Range([A1].End(xlDown), "$n$1"), , xlYes).Name = "EDA_Table"

我收到一条错误消息,上面写着"表格的工作表数据需要与表格在同一张纸上。"据我所知,我将表格放在与数据所在页面相同的页面上。有什么建议吗?

3 个答案:

答案 0 :(得分:1)

试试这个。您需要声明一个范围对象,以便您可以访问其属性。

Dim wks As Worksheet
Set wks = ThisWorkbook.Sheets("Enrollment Data Aggregate")
Dim rng As Range
Set rng = wks.Range([A1].End(xlDown), "$n$1")
wks.ListObjects.Add(xlSrcRange, rng, , xlYes).Name = "EDA_Table"

答案 1 :(得分:0)

确保将“范围/表”转换为“功能/子/代码”的表/表放在VBA“项目”窗口中。

答案 2 :(得分:0)

我相信您也可以通过在表格中指定范围来解决该错误。

例如,更改:

Sheets("Enrollment Data Aggregate").ListObjects.Add(xlSrcRange, Range([A1].End(xlDown), "$n$1"), , xlYes).Name = "EDA_Table"

收件人:

Sheets("Enrollment Data Aggregate").ListObjects.Add(xlSrcRange, Sheets("Enrollment Data Aggregate").Range([A1].End(xlDown), "$n$1"), , xlYes).Name = "EDA_Table"