Получить выбранный пользователем диапазон - PullRequest
32 голосов
/ 02 ноября 2010

Как я могу получить диапазон ячеек, выбранных с помощью пользовательской мыши, для дальнейшей обработки с использованием VBA?

Ответы [ 3 ]

33 голосов
/ 02 ноября 2010

Selection - это собственный объект в VBA. Он функционирует так же, как объект Range.

Выделение и Диапазон не имеют общих свойств и методов, хотя для простоты использования может иметь смысл просто создать диапазон и установить его равным Выделению, тогда вы можете обращаться с ним программно, как с любым другим диапазон.

Dim myRange as Range
Set myRange = Selection

Для дальнейшего чтения, прочитайте статью MSDN .

27 голосов
/ 02 ноября 2010

Вы можете перебрать объект Selection, чтобы увидеть, что было выбрано. Вот фрагмент кода от Microsoft (http://msdn.microsoft.com/en-us/library/aa203726(office.11).aspx):

Sub Count_Selection()
    Dim cell As Object
    Dim count As Integer
    count = 0
    For Each cell In Selection
        count = count + 1
    Next cell
    MsgBox count & " item(s) selected"
End Sub
12 голосов
/ 04 февраля 2015

Это зависит от того, что вы подразумеваете под «получить диапазон выбора».Если вы хотите получить диапазон address (например, «A1: B1»), используйте свойство Address объекта Selection - как сказал Майкл, объект Selection очень похож на объект Range, поэтому большинство свойств и методов работают с ним..

Sub test()
    Dim myString As String
    myString = Selection.Address
End Sub
...