VBA - Get cursor position as cell address

前端 未结 1 803
慢半拍i
慢半拍i 2020-12-18 17:11

I have the following code which works fine for retrieving the cursor position as pixels:

Declare Function GetCursorPos Lib \"user32\" (lpPoint As POINTAPI) A         


        
相关标签:
1条回答
  • 2020-12-18 18:03

    Use ActiveWindow.RangeFromPoint to get the cell address.


    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
    
    0 讨论(0)
提交回复
热议问题