3

是否有任何模拟普通gotoExcel 函数Ctrl+[ 和的 VBA 代码F5

进一步举例说明:

在这个Problem.xlsx中有两个工作表Alpha- 和Beta.

我想要一个代码

  1. 在工作表的单元格上加一个Ctrl+ (即[在单元格A2Alpha获取 Beta!B5 引用)
  2. 以便跳转到工作表的单元格B5Beta使用 Beta!B5 参考,进行跳转)
  3. 向右移动一个单元格,即工作表C5的一个单元格Beta并将该单元格着色为黄色
  4. 最后做一个F5回到工作表A2的单元格Alpha

我在各种关键字上搜索了 2 个小时,goto但无济于事。ctrl-[F5previous selection

附加说明:

我正在尝试模拟 goto 函数 Ctrl-[ 和 F5 以便我所在的任何活动单元格(带有指向另一个工作表中另一个单元格的链接),VBA 代码可以执行跳转,进行颜色着色并跳转回原单。即以下代码过于严格

Sub JumpColourJump()
    Worksheets("Beta").Range("B5").Offset(, 1).Interior.Color = vbYellow
    Worksheets("Alpha").Range("A2").Select
End Sub

代码应该灵活地跳转到同一文件或活动单元格所引用的另一个文件中的任何工作表。

4

2 回答 2

0

为了在页面之间来回走动,这样的事情会起作用。

'follow local hyperlink
Application.Goto Reference:=Worksheets("Alpha").Cells(1, 1).FormulaR1C1
'color the cell to the right
ActiveCell.Offset(0, 1).Interior.Color = vbYellow
'return using the same method

然后,您可以使用ActiveCell.Offset(row, col)获取正确的单元格并执行操作,并使用相同的方法返回。


为了返回之前的位置,你可以将它保存在一个变量中,

Dim returnSheet As String, returnCell As String
returnSheet = ActiveSheet.Name
returnCell = CStr(ActiveCell.Address(False, False))
'Jump to cell, do your magic
Application.Goto Reference:=Worksheets(returnSheet).Range(returnCell)

或者对于从一个单元到另一个单元的多次跳转,一个类模块就像一个实现推送和弹出功能的堆栈将是理想的。

于 2013-03-18T05:04:35.620 回答
0

您的大部分代码都可以通过录制宏来生成,但更复杂的部分似乎是:

  • 导航到引用所选单元格的第一个单元格 -这篇关于超级用户的帖子看起来包含一些很好的建议
  • 返回上一张表 - 您可以在函数开始时引用活动表,然后在之后恢复它,即:
Dim initalSheet As Worksheet
' Take a reference to the current sheet
Set initialSheet = ActiveSheet

' *** Perform changes here ***

' Return to the initially selected sheet
initialSheet.Select
于 2013-03-18T04:53:40.303 回答