像goto函数一样运行的VBA代码:“Ctrl- [”和“F5”

时间:2013-03-18 03:54:43

标签: excel vba excel-vba

是否有任何模拟正常goto Excel函数的VBA代码 Ctrl + [ F5

通过示例进一步阐述:

在此Problem.xlsx中有两个工作表 - AlphaBeta

我想要一个代码

  1. A2工作表的单元格Alpha上执行 Ctrl + [“(即获取单元格中的Beta!B5引用)< / LI>
  2. 以便跳转到B5工作表的单元Beta(使用Beta!B5引用,跳转)
  3. 向右移动一个单元格,即C5工作表的Beta,并将该单元格设为黄色
  4. 最后执行 F5 返回A2工作表
  5. 的单元格Alpha

    我在Google gotoctrl-[F5previous selection等各种关键字上搜索了2个小时无效。

    附加说明:

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

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

    代码应灵活,以跳转到同一文件或活动单元格引用的其他文件中的任何一张。

2 个答案:

答案 0 :(得分:0)

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

  • 导航到引用所选单元格的第一个单元格 - this post on superuser看起来包含一些好建议
  • 回到上一张表格 - 您可以在功能开始时引用活动表格,然后在之后恢复,即:
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

答案 1 :(得分: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)

对于从单元到单元的多次跳转,类似模块的行为像堆栈一样实现推送&amp;流行功能将是理想的。