excel VBA如何使用.Selection获取多个选择

n53p2ov0  于 2023-05-19  发布在  其他
关注(0)|答案(2)|浏览(217)

我还没能找到一个有用的解决办法。也许这里有人知道答案。我的宏要求用户有一个源单元格和目标单元格。为此,选择源,然后按住ctrl并单击另一个单元格。这将创建多个选择,我似乎无法访问它们。当我使用选择范围时,我只有范围中的第一个单元格。是否有其他选择范围,或者我如何获得第二个单元格?有谁有线索吗?

qc6wkl3g

qc6wkl3g1#

您需要的是对Areas collection of Selection的引用。它会这样:

'for first cell:
Selection.Areas(1).Address
'for second cell:
Selection.Areas(2).Address

两者都将返回单元格的地址,但您可以相应地更改它。

j0pj023g

j0pj023g2#

我写了很多代码来处理用户的“未知选择”。下面的基本循环是如此灵活。
它可以是单个单元格、一行或一个或多个整行中的一些单元格、一列或一个或多个整列中的一些单元格、单元格块、“.UsedRange”或它们中的任何或全部的混合的多个组合...或者当然是整个工作表、多个工作表或整个工作簿
这个简单的例子增加了用户选择中任何单元格的内容…

Public Sub IncrementByOne()

     Dim ThisCell As Range _
       , ThisArea As Integer
     
     For ThisArea = 1 To Selection.Areas.Count
          For Each ThisCell In Selection.Areas(ThisArea)
               ThisCell.Value2 = ThisCell.Value2 + 1
          Next ThisCell
     Next ThisArea

End Sub

忽略它正在递增单元格内容的事实,并使用在编码时未指定的多个选择中迭代所有单元格的方法。
伊恩

相关问题