寻找一种更简单的方法来 select 范围工作表中的一个(部分)列(不是整个列)。("upperleftmostPointByName").CurrentRegion

Looking for an easier way to select a (part of) Column (not EntireColumn) within a Range worksheet.("upperleftmostPointByName").CurrentRegion

我正在寻找一种简单的方法来 select 给定范围内的列。

下面的Sub是这样做的,但是好像太复杂了...

有人有想法吗?

Sub selectColumnInCurrentRegion(columnNrToBeSelected as Integer)
    
    Dim myRange  As Range
    Dim myArr As Variant 'just for debugging purposes
    
    Dim myWS As Worksheet
    Set myWS = ws_TargetForCGraphSearch 'Adjust your Worksheet
    
    Dim upperLeftCornerAsName As String
    upperLeftCornerAsName = "TargetResultStartPoint" 'Adjust your Corner
    
    Set myRange = Application.Intersect(myWS.Range(upperLeftCornerAsName).CurrentRegion, _                                                                
                  myWS.Range(upperLeftCornerAsName).Offset(0, columnNrToBeSelected -1).EntireColumn)
    myArr = myRange
    
    myRange.Select

 End Sub

提前致谢!

使用列 属性 从 CurrentRegion 范围对象访问所选列。

Set myRange = myWS.Range(upperLeftCornerAsName).CurrentRegion.Columns(columnNrToBeSelected)

腰带和大括号,您将检查 myWS.Range(upperLeftCornerAsName).CurrentRegion 是否有效以及 .CurrentRegion>0columnNrToBeSelected is <= .columns.Count