首页 > 解决方案 > 寻找一种更简单的方法来选择范围工作表中的(部分)列(而不是整个列)。(“upperleftmostPointByName”).CurrentRegion

问题描述

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

下面的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

先感谢您!

标签: excelvbarangeselection

解决方案


使用 columns 属性从 CurrentRegion 范围对象访问选择的列。

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

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


推荐阅读