引用表的各部分的VBA代码
理解Excel的文档对象模型是读写VBA代码的关键。掌握了这一点,编写VBA代码的能力就会高得多。
选取整个表
下面的代码选择整个表,包括标题行和汇总行。
Sub SelectTable()
ActiveSheet.ListObjects("myTable").Range.Select
End Sub选取表中的数据
DataBodyRange不包括表的标题和汇总区域。
Sub SelectTableData()
ActiveSheet.ListObjects("myTable").DataBodyRange.Select
End Sub从表中单个单元格获取值
下面的代码获取表中第2行第4列的值。
Sub GetValueFromTable()
MsgBox ActiveSheet.ListObjects("myTable").DataBodyRange(2, 4).Value
End Sub选取整列
下面的代码展示通过位置或名字选取列。
Sub SelectAnEntireColumn()
'基于位置选取列
ActiveSheet.ListObjects("myTable").ListColumns(2).Range.Select
'基于名字选取列
ActiveSheet.ListObjects("myTable").ListColumns("区域").Range.Select
End Sub选取列(仅数据)
下面的代码与上面的相似,但使用DataBodyRange仅选取数据,排除了标题和汇总行。
Sub SelectColumnData()
'基于位置选择列数据
ActiveSheet.ListObjects("myTable").ListColumns(4).DataBodyRange.Select
'基于名字选择列数据
ActiveSheet.ListObjects("myTable").ListColumns("区域").DataBodyRange.Select
End Sub选取指定的列标题
下面的代码展示如何选取第5列的列标题单元格。
Sub SelectCellInHeader()
ActiveSheet.ListObjects("myTable").HeaderRowRange(5).Select
End Sub选取汇总区域中指定的列
下面的代码展示如何选取第3列汇总行中的单元格。
Sub SelectCellInTotal()
ActiveSheet.ListObjects("myTable").TotalsRowRange(3).Select
End Sub选取整个数据行
下面的代码选取表中第3行数据。
Sub SelectRowOfData()
ActiveSheet.ListObjects("myTable").ListRows(3).Range.Select
End Sub注意,标题行不包括在ListRow中。因此,ListRows(3)是DataBodyRange中的第三行,而不是从表顶部起的第三行。
选取标题行
下面的代码选取表中的标题行区域。
Sub SelectHeaderSection()
ActiveSheet.ListObjects("myTable").HeaderRowRange.Select
End Sub选取汇总行
下面的代码选取表中的汇总行区域。
Sub SelectTotalsSection()
ActiveSheet.ListObjects("myTable").TotalsRowRange.Select
End Sub上面就是基本的引用表的各部分的VBA代码。引用了相应的单元格区域后,我们就可以使用VBA代码来进一步操作这些区域了。
未完待续……