如何使用 vba 创建 table?
How to create a table using vba?
我正在编写一个简单的代码来从数据库中获取一些关键数据 import/export。我想让它对用户友好,基本上是“单击一下按钮”就可以得到结果。
当我编写代码时,我使用 Alt+F11 和“播放”=> 它有效。但是,当我插入 Active X-Control“CommandButton1_Click”时,宏停止了。
这是哪里(第一行):
ActiveSheet.ListObjects.Add(xlSrcRange, Range("A:$Be00"), , xlYes).Name = _
"Table1"
Range("Table1[#All]").Select
ActiveSheet.ListObjects("Table1").TableStyle = "TableStyleLight1"
这是与播放按钮完全相同的代码。
我收到错误消息:
"Run-time Error 1004:
The worksheet range for the table data must be on the same sheet as the table beeing created."
有人知道吗?
我的代码的一个改进是,拥有 table 长度变量:一组中的行可能更多,而另一组数据中的行更少。
ActiveX 命令按钮是 Sheet 中的控件,因此您在代码中使用它不会有任何引用问题,但您必须指定它们才能在其他地方使用相同的代码。
根据您的需要进行调整,如果还不够请告诉我:
Dim Ws As Worksheet
Set Ws = ThisWorkbook.Sheets("Sheet_Name")
Ws.ListObjects.Add(xlSrcRange, Ws.Range("A:$BE00"), , xlYes).Name = "New_Table_Name"
Ws.ListObjects("New_Table_Name").TableStyle = "TableStyleLight1"
只需根据您的需要调整 Sheet_Name
和 New_Table_Name
即可!
您还必须为源范围指定 sheet,因为在工作sheet 代码模块中,任何对 Range
或 Cells
的非限定引用都等同于Me.Range
或 Me.Cells
并指代 sheet 上包含代码的范围(即在本例中带有按钮的 sheet):
With ActiveSheet.ListObjects.Add(xlSrcRange, ActiveSheet.Range("A:$Be00"), , xlYes)
.Name = "Table1"
.TableStyle = "TableStyleLight1"
End With
我正在编写一个简单的代码来从数据库中获取一些关键数据 import/export。我想让它对用户友好,基本上是“单击一下按钮”就可以得到结果。
当我编写代码时,我使用 Alt+F11 和“播放”=> 它有效。但是,当我插入 Active X-Control“CommandButton1_Click”时,宏停止了。
这是哪里(第一行):
ActiveSheet.ListObjects.Add(xlSrcRange, Range("A:$Be00"), , xlYes).Name = _
"Table1"
Range("Table1[#All]").Select
ActiveSheet.ListObjects("Table1").TableStyle = "TableStyleLight1"
这是与播放按钮完全相同的代码。
我收到错误消息:
"Run-time Error 1004:
The worksheet range for the table data must be on the same sheet as the table beeing created."
有人知道吗?
我的代码的一个改进是,拥有 table 长度变量:一组中的行可能更多,而另一组数据中的行更少。
ActiveX 命令按钮是 Sheet 中的控件,因此您在代码中使用它不会有任何引用问题,但您必须指定它们才能在其他地方使用相同的代码。
根据您的需要进行调整,如果还不够请告诉我:
Dim Ws As Worksheet
Set Ws = ThisWorkbook.Sheets("Sheet_Name")
Ws.ListObjects.Add(xlSrcRange, Ws.Range("A:$BE00"), , xlYes).Name = "New_Table_Name"
Ws.ListObjects("New_Table_Name").TableStyle = "TableStyleLight1"
只需根据您的需要调整 Sheet_Name
和 New_Table_Name
即可!
您还必须为源范围指定 sheet,因为在工作sheet 代码模块中,任何对 Range
或 Cells
的非限定引用都等同于Me.Range
或 Me.Cells
并指代 sheet 上包含代码的范围(即在本例中带有按钮的 sheet):
With ActiveSheet.ListObjects.Add(xlSrcRange, ActiveSheet.Range("A:$Be00"), , xlYes)
.Name = "Table1"
.TableStyle = "TableStyleLight1"
End With