1

在 Excel 中,我有一个按钮,可将所选单元格标记在页面上相对于您最初所在的单元格向上移动 20 位。它工作正常,直到它到达顶部然后出现错误。

我知道这很可能是因为它超出了范围,所以我尝试使用 if else 语句来解决它 - 我想是因为我不是 100% 熟悉我找不到的函数名称正确的说法是:如果单元格超出范围,则等于 0,0 或类似的值。

这就是我到目前为止所拥有的;唯一起作用的是语句的 else 部分:

Sub moveUp20()
    '
    ' Move Up 20 Macro
    '

    '
    If ActiveCell.Offset(-20, 0) <= Range(0, 0) Then
    ActiveCell.Select = Range(0, 0)
    Else
    ActiveCell.Offset(-20, 0).Select
    End If
End Sub

这可能很简单,因为我不熟悉 excel 宏编程术语/语义,所以我将不胜感激!谢谢!:)

4

2 回答 2

2

对于您想要的功能,最简单的是

Sub moveUp20()
    On Error Resume Next
    ActiveCell.Offset(-20).Select
    On Error GoTo 0
End Sub

如果您愿意,您还可以探索以下选项

ActiveWindow.SmallScroll Down:=-20
于 2012-08-10T14:14:28.687 回答
2
Sub moveUp20()

If ActiveCell.Row > 20 Then 'if you are on row 21 or below

    ActiveCell.Offset(-20).Select

Else ' select row 1 of the current column you are on

    Cells(1, ActiveCell.Column).Select

End If

End Sub
于 2012-08-10T14:05:25.103 回答