Excel VBA получает диапазон выбранного пользователем диапазона с помощью мыши

Это не проблема usedrange.
Например, в Excel пользователь выбирает диапазон (возможно, пустой) с помощью мыши, скажем, B4:C12

И допустим после этого не снимая выделения с диапазона пользователь нажимает макрос, а макрос должен сказать B4:C12.

Кто-нибудь может показать пример?

Макрос должен быть примерно таким:

Sub showrng()
    MsgBox SelectedRange.Address(ReferenceStyle:=xlA1)
End Sub

person sdfg    schedule 10.09.2010    source источник


Ответы (2)


Sub macro1()
  MsgBox Selection.Address(ReferenceStyle:=xlA1, _
                           RowAbsolute:=False, ColumnAbsolute:=False)
End Sub

ХТХ!

person Dr. belisarius    schedule 10.09.2010
comment
+1, но ReferenceStyle:=xlA1 будет более точно соответствовать требованиям вопроса - person barrowc; 11.09.2010

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

Public Sub SelectionTest()
Dim r As Range
Dim s As String

  Select Case Selection.Areas.Count
  Case 0:
    MsgBox "Nothing selected."
  Case 1:
    MsgBox "Selected range: " & Selection.Areas(1).Address(False, False)
  Case Else
    s = ""
    For Each r In Selection.Areas
      s = s + vbNewLine + r.Address(False, False)
    Next r
    MsgBox "Selected several areas:" & s
  End Select

End Sub
person wribln    schedule 04.02.2015