如何使用vba创build表?

我正在写一个简单的代码来从数据库导入/导出中获取一些关键数字。 我想把它变成用户友好的,基本上是“一键点击”给出结果。

当我编写代码时,我使用Alt + F11和“Play”=>它工作。 但是当我插入Active X控制“CommandButton1_Click”macros停止。

这里是(第一行):

ActiveSheet.ListObjects.Add(xlSrcRange, Range("A$1:$Be$1500"), , xlYes).Name = _ "Table1" Range("Table1[#All]").Select ActiveSheet.ListObjects("Table1").TableStyle = "TableStyleLight1" 

这是与播放button相同的代码

我收到错误消息:

“运行时错误1004:

表格数据的工作表范围必须与创build的表格在同一张表上。“

有没有人有一个想法?

对我的代码的一个改进就是使表的长度变化:在一个集合中可能有更多的行,而另一个数据集中可能有更less的行。

一个ActiveX命令button是工作表中的一个控件,因此在代码中不会有任何引用问题,但是您必须指定它们在其他位置使用相同的代码。

调整这个你的需要,让我知道,如果这是不够的:

 Dim Ws As Worksheet Set Ws = ThisWorkbook.Sheets("Sheet_Name") Ws.ListObjects.Add(xlSrcRange, Ws.Range("A$1:$BE$1500"), , xlYes).Name = "New_Table_Name" Ws.ListObjects("New_Table_Name").TableStyle = "TableStyleLight1" 

只需将Sheet_NameNew_Table_Name调整为您的需要,即可滚动!

您也必须为源范围指定工作表,因为在工作表代码模块中,任何对“ Range或“ Cells非限定引用都相当于Me.RangeMe.Cells并且是指包含代码的工作表上的一个范围(即工作表在这种情况下button):

 With ActiveSheet.ListObjects.Add(xlSrcRange, ActiveSheet.Range("A$1:$Be$1500"), , xlYes) .Name = "Table1" .TableStyle = "TableStyleLight1" End With