Excel 2007版本或以上的智能表格的生成与取消的VBA代码
https://weibo.com/p/1001603957226053193125
Excel智能表格生成:选中要转换表格的区域,按Ctrl+T即可生成;取消则点击表格内容内任意单元格,鼠标右键,选择:表格→转换为区域,即可取消。再添加自动筛选,以便排序。
以上功能也可以用宏命令实现,请参见如下代码:
将指定区域a行b列转换为智能表格,命名为表2(请将a,b替换为具体的数字):
ActiveSheet.ListObjects.Add(xlSrcRange, Range(Cells(1, 1), Cells(a, b)), , xlYes).Name = "表2"
取消智能表格并自动筛选(假设标题行从A1单元格开始)
ActiveSheet.ListObjects("表2").Unlist
Range("A1").Select '选择A2单元格标题行
Selection.AutoFilter '添加自动筛选功能
以上b行,c列可以申明变量后计算出来:
a = Application.CountA(Range("B:B")) '计算含有数据的行的数目
b = Application.CountA(Range("1:1")) '计算含有数据的列的数目
附相应代码:
生成智能表格:
Sub 生成()
Dim a&, b&
a = Application.CountA(Range("B:B")) '计算含有数据的行的数目 VBA
b = Application.CountA(Range("1:1")) '计算含有数据的列的数目 VBA
ActiveSheet.ListObjects.Add(xlSrcRange, Range(Cells(1, 1), Cells(a, b)), , xlYes).Name = "表2" '类似Ctrl+T转换为智能表格
End Sub
取消智能表格并添加自动筛选:
Sub 取消()
ActiveSheet.ListObjects("表2").Unlist
Range("A1").Select '选择A2单元格标题行
Selection.AutoFilter '添加自动筛选功能
End Sub
(相应代码通过宏命令录制提取,Excel其他版本操作类似。)
转自本人微博:Excel 2007版本或以上的智能表格的生成与取消的VBA代码
https://weibo.com/p/1001603957226053193125
转载请注明,谢谢!









网友评论