首页 > 解决方案 > 如何使用excel中结构化引用表的特定连续列在vba中设置范围?

问题描述

使用以下代码时,我收到“无效的过程调用或参数错误..”:

Dim DTTbl As ListObject
Dim rng As Range

Set DTTbl = ThisWorkbook.Worksheets("DataTypes").ListObjects("DataTypes")
Set rng = DTTbl.Range("DataTypes[[ClassProperty]:[DataType]]")

请注意,工作表和表格都命名为“DataTypes”。“ClassProperty”和“DataType”列是相邻的。

如何将 rng 设置为使用列名提到的 2 列的“组合区域/范围”?

标签: excelvba

解决方案


你可以这样做:

Dim col1 As Range, col2 As Range
Set col1 = DTTbl.ListColumns("ClassProperty").DataBodyRange
Set col2 = DTTbl.ListColumns("DataType").DataBodyRange

Set rng = ThisWorkbook.Worksheets("DataTypes").Range(col1.Address, col2.Address)
Debug.Print rng.Address

推荐阅读