VBA – 获取光标位置作为单元格地址
我有以下代码工作正常,检索作为像素的光标位置:
Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long ' Create custom variable that holds two integers Type POINTAPI Xcoord As Long Ycoord As Long End Type Sub GetCursorPosDemo() Dim llCoord As POINTAPI ' Get the cursor positions GetCursorPos llCoord ' Display the cursor position coordinates MsgBox "X Position: " & llCoord.Xcoord & vbNewLine & "Y Position: " & llCoord.Ycoord End Sub
我希望它返回我的光标目前是单元格地址,或者也许坐标点,所以我可以将其转换为地址。 那可能吗?
使用ActiveWindow.RangeFromPoint
获取单元格地址。
Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long ' Create custom variable that holds two integers Type POINTAPI Xcoord As Long Ycoord As Long End Type Sub GetCursorPosDemo() Dim llCoord As POINTAPI Dim rng As Range ' Get the cursor positions GetCursorPos llCoord ' Display the cursor position coordinates 'MsgBox "X Position: " & llCoord.Xcoord & vbNewLine & "Y Position: " & llCoord.Ycoord Set rng = GetRange(llCoord.Xcoord, llCoord.Ycoord) If Not rng Is Nothing Then MsgBox "Cell under mouse is :" & rng.Address Else MsgBox "Not a valid location." End If End Sub Function GetRange(x As Long, y As Long) As Range Set GetRange = ActiveWindow.RangeFromPoint(x, y) End Function