使用箭头键导航时,将鼠标指针移动到活动单元格的中心

时间:2013-06-13 07:38:51

标签: excel vba excel-vba ms-office

使用箭头键从单元格导航到单元格时,我试图让鼠标指针移动到所选单元格的中心

在Excel 2010中,以下解决方案可以正常运行

Public Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

SetCursorPos _
    ActiveWindow.ActivePane.PointsToScreenPixelsX(Target.Left + (Target.Width / 2)), _
    ActiveWindow.ActivePane.PointsToScreenPixelsY(Target.Top + (Target.Height / 2))

End Sub

但是在Excel 2003 ActiveWindow.ActivePane中没有PointsToScreenPixelsXPointsToScreenPixelsY方法。所以我试图找到另一个解决方案,如下面的解决方案。 X轴工作正常,但Y轴没有。

Public Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

SetCursorPos _
    ActiveWindow.Application.ActiveWindow.PointsToScreenPixelsX((Target.Left + (Target.Width / 2)) / 0.75), _
    ActiveWindow.Application.ActiveWindow.PointsToScreenPixelsY((Target.Top + (Target.Height / 2)) / 0.75)

End Sub

我希望无论分辨率如何,这都可以工作。任何想法?

1 个答案:

答案 0 :(得分:2)

这适用于旧版本的Excel。它很笨重,但它完成了工作。

void afis(struct persoana *p)
{
    printf("%s\n", p->numePrenume);
    printf("%s\n", p->strada);
    printf("%s\n", p->judet);
    printf("%s\n", p->oras);
    printf("%d\n", p->varsta);
}