《VBA高级应用30例》(版权10178985),是我推出的第十套教程,教程是专门针对高级学员在学习VBA过程中提高路途上的案例展开,这套教程案例与理论结合,紧贴“实战”,并做“战术总结”,以便大家能很好的应用。教程的目的是要求大家在实际工作中分发VBA程序,写好的程序可以升级。本套教程共三册三十个专题,本讲的内容是:VBA高级应用30例应用3在Excel中的ListObject对象:插入行和列
【分享成果,随喜正能量】 以无我心行善,是无为之法。行善而不执着,是成就之因。
佛说:以无我相无人相无众生相无寿者相行一切善,即得阿耨多罗三藐三菩提。。
应用3 在Excel中的ListObject对象
在VBA中,表(Tables)的应用还是较普遍的,它们被称为ListObjects,这是Excel 2003引入的一个集合。但是对象模型的这一部分有很大的变化,我在这个专题简单给大家讲解一下应用,包括创建及一些格式操作。
4 插入行和列
ListObject对象还具有增加行及列的功能,例如:我们会用到ListRows的Add方法增加行,这时会用到“AlwaysInsert”参数。
- ListRows.Add 方法:将新行添加到指定的 ListObject 表示的表中。
语法:expression.Add (Position, AlwaysInsert)
其中expression为一个代表ListRows对象的变量。
参数:
名称
必需/可选
数据类型
说明
Position
可选
Variant
整数。 指定新行的相对位置。
AlwaysInsert
可选
Variant
Boolean 类型的值 。 指定在插入新行时,是否始终移动表格中最后一行下面的单元格中的数据,而不考虑表格下面的行是否为空行。 如果为 True,则表格下面的单元格将下移一行。如果为 False,如果表格下面的行为空,表格将展开以占用该行,而不移动其下方的单元格,但如果表格下面的行包含数据,则插入新行时,这些单元格将下移
- ListColumns.Add 方法:向列表对象中添加新列
语法:expression.Add (Position)
其中expression为一个代表 ListColumns 对象的变量。
参数:
名称
必需/可选
数据类型
说明
Position
可选
Variant
整数。 从 1 开始指定新列的相对位置。 以前位于此位置的列则向后移动。
我们看下面的代码:
Sub mynzTableInsert()
Dim oSh As Worksheet
Set oSh = ActiveSheet
oSh.ListObjects("myTable1").Range.Select
'在特定位置插入
Selection.ListObject.ListColumns.Add Position:=4
'在右边插入
Selection.ListObject.ListColumns.Add
'在上面插入
Selection.ListObject.ListRows.Add (11)
'在下面插入
Selection.ListObject.ListRows.Add AlwaysInsert:=True
End Sub
代码截图:
代码的讲解:以上代码利用了Add方法分别插入了一些行和列,大家要注意以上语句的用法。这些用法都是我们在实际工作中经常用到的。列表对象对于实际工作有着非常重要的价值,值得我们深入的学习。
代码的运行测试:
如果需要对新插入的行执行某些操作,可以将对象变量设置为新行:
Dim oNewRow As ListRow
Set oNewRow = Selection.ListObject.ListRows.Add(AlwaysInsert:=True)
oNewRow.Range.Cells(1,1).Value = "Value For New cell"
我20多年的VBA实践经验,全部浓缩在下面的各个教程中: