我正在编写一个简单的代码来从数据库导入/导出中获取一些关键数字。我想让它变得用户友好,基本上是#34;一个按钮点击"给出结果。
当我编写代码时,我使用Alt + F11和" Play" =>有用。但当我插入Active X-Control" CommandButton1_Click"宏停止了。
这是(第一行):
ActiveSheet.ListObjects.Add(xlSrcRange, Range("A$1:$Be$1500"), , xlYes).Name = _
"Table1"
Range("Table1[#All]").Select
ActiveSheet.ListObjects("Table1").TableStyle = "TableStyleLight1"
与播放按钮完全相同的代码。
我收到错误消息:
"运行时错误1004:
表格数据的工作表范围必须与创建的表格位于同一张纸上。"
有没有人有想法?
对我的代码进行改进,使表长度变量:一组中可能有更多行,而另一组中可能更少。
答案 0 :(得分:1)
ActiveX命令按钮是工作表中的控件,因此您不会在代码中使用它时遇到任何引用问题,但您必须指定它们以使用相同的其他代码。
根据您的需要调整此项,如果不够,请告诉我:
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
,这应该滚动!
答案 1 :(得分:1)
您还必须为源范围指定工作表,因为在工作表代码模块中,对Range
或Cells
的任何未经限定的引用等同于Me.Range
或Me.Cells
并且是指包含代码的工作表上的范围(即在这种情况下按钮打开的工作表):
With ActiveSheet.ListObjects.Add(xlSrcRange, ActiveSheet.Range("A$1:$Be$1500"), , xlYes)
.Name = "Table1"
.TableStyle = "TableStyleLight1"
End With