【问题标题】:Excel macro button to move up page errors at topExcel宏按钮在顶部向上移动页面错误
【发布时间】:2012-08-10 14:01:15
【问题描述】:

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

我知道这[最有可能]是因为它超出了范围,所以我尝试使用 if else 语句来解决它 - 我认为是因为我不是 100% 熟悉我可以使用的函数名称t 找到正确的措辞: 如果单元格超出范围,则等于 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 宏编程术语/语义,所以我希望能得到一些帮助!谢谢! :)

【问题讨论】:

  • 你到底想做什么?我的意思是为什么要手动选择单元格?你想达到什么目的?
  • 我有一个很长的 Excel 电子表格,所以我创建了这个按钮作为上下移动页面的一种比滚动更快的方式,因为 20 个位置将选定的单元格从一个部分移动到另一个部分。我可能应该清楚单元格的内容不会改变 - 它基本上是在移动选定的单元格“光标”
  • 为什么不设置鼠标的滚动,让它相应地滚动行?你不需要 vba 代码:)
  • +1!不知道你可以做这个整洁的小功能!将不得不探索。
  • 控制面板 |鼠标 |一次滚动行

标签: excel button excel-2007 vba


【解决方案1】:
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

【讨论】:

  • 就像一个魅力!非常感谢! :D :D :D会投票,但我是网站的新手;(
  • would vote up but I'm a newbie to site + 1 @bladepanthera:我已经为你做了;)
【解决方案2】:

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

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

如果你愿意,你也可以探索

的选项
ActiveWindow.SmallScroll Down:=-20

【讨论】:

  • +1 用于多种解决方案和 OP 的另一种解释
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多