Excel VBA如何通过鼠标获取用户选择的区域范围

10
这不是“usedrange”问题。
例如,在Excel中,用户使用鼠标选择一个范围(可能为空),比如B4:C12。
假设在这之后,用户没有取消选择,而是按下了宏,那么宏应该告诉B4:C12。
有人可以举个例子吗?
宏应该类似于以下内容:
Sub showrng()
    MsgBox SelectedRange.Address(ReferenceStyle:=xlA1)
End Sub
3个回答

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

祝一切顺利!


1
+1 但是 ReferenceStyle:=xlA1 更符合问题的要求 - barrowc

4
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
由于选择可以包含多个独立的范围,因此以下代码展示了该问题的更完整解决方案:
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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接