Excel VBA - получить диапазон выбранного пользователем диапазона мышью - PullRequest
8 голосов
/ 10 сентября 2010

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

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

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

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

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

Ответы [ 3 ]

12 голосов
/ 10 сентября 2010
Sub macro1()
  MsgBox Selection.Address(ReferenceStyle:=xlA1, _
                           RowAbsolute:=False, ColumnAbsolute:=False)
End Sub

HTH!

3 голосов
/ 04 октября 2012
Sub macro1()
  MsgBox Selection.Address
End Sub

или

Sub macro1()
    Dim addr as String
    addr = Selection.Address
    msgbox addr

    ' Now, as we found the address, according to that... you can also do other operations

End Sub
1 голос
/ 04 февраля 2015

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

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
...