专业的编程技术博客社区

网站首页 > 博客文章 正文

VBA高级应用30例应用3在Excel中的ListObject对象:插入行和列

baijin 2025-03-06 12:00:33 博客文章 94 ℃ 0 评论

《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实践经验,全部浓缩在下面的各个教程中:

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表