如何使用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_Name
和New_Table_Name
调整为您的需要,即可滚动!
您也必须为源范围指定工作表,因为在工作表代码模块中,任何对“ Range
或“ Cells
非限定引用都相当于Me.Range
或Me.Cells
并且是指包含代码的工作表上的一个范围(即工作表在这种情况下button):
With ActiveSheet.ListObjects.Add(xlSrcRange, ActiveSheet.Range("A$1:$Be$1500"), , xlYes) .Name = "Table1" .TableStyle = "TableStyleLight1" End With