根据初始选定范围在另一列中选择一个值范围

时间:2019-07-18 22:42:24

标签: excel vba

我正在尝试根据初始列中选择的单元格范围从其他列中选择整个单元格范围。
例如,如果选择了A1:A5,我希望代码选择E1:E5。初始范围可以根据用户输入而变化。

仅对代码含义有一些了解:我正在比较学区的RX计划,并且能够选择合适的学区(再次基于用户输入)。我只需要选择E列中的相应RX计划。

到目前为止,我已经能够做出选择,例如,当选择A6:A13时,它会自动越过并选择E6。但是,我需要它来选择E6:E13的全部(或至少使那些细胞成为活动细胞)。

我知道我的问题出在使用ActiveCell.Row上,因为显然只能选择一行。我只是不知道如何选择整个范围。

请注意,不包括我的全部代码,因为与RX计划一样,这是与此问题相关的唯一代码。

Dim DistrictName As String

Dim DistrictOneRng As Range

Dim rALL As Range

Dim xDistrict As String

Dim ComparisonOption As String

xTitleId = "FindDistrictTool"

xDistrict = Application.InputBox("Enter Your District Name", xTitleId, Type:=2)

ComparisonOption = Application.InputBox("What do you want to compare: RX Plans, Metallic Levels, Number of Plans, Average AV", xTitleId, Type:=2)

Select Case ComparisonOption

    Case "RX Plans"

        With Worksheets(1).Range("A1:A130")

            Set DistrictOneRng = .Find(xDistrict, LookIn:=xlValues)
             If Not DistrictOneRng Is Nothing Then
                Set rALL = DistrictOneRng
                 DistrictName = DistrictOneRng.Address

                   Do
                     Set rALL = Union(rALL, DistrictOneRng)
                      Worksheets(1).Range(DistrictOneRng.Address).Activate
                      Set DistrictOneRng = .FindNext(DistrictOneRng)

                    Loop While Not DistrictOneRng Is Nothing And DistrictOneRng.Address <> DistrictName
            End If
            .Activate
            If Not rALL Is Nothing Then rALL.Select
       End With


       Range("E" & (ActiveCell.Row)).Select

1 个答案:

答案 0 :(得分:0)

您需要在WORKSHEET代码部分(而不是MODULE)中进行设置,并将其与select ... where table.code = isnull(nullif('',''),table.code) select ... where table.code = isnull(null,table.code) 事件相关。

下面是一个示例代码,当选择Worksheet_SelectionChange时,它将对单元格 B1 中列为数字的行选择A1:A15。因此,如果E1的值为B1,则宏将选择5

我在示例代码的A列中添加了其他组合,例如ANY单元格。希望您可以将其推断出来,以执行各种if条件语句所要执行的操作。

E1:E5