Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
像goto函数一样运行的VBA代码:";Ctrl-[“和”F5“;_Vba_Excel - Fatal编程技术网

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

像goto函数一样运行的VBA代码:";Ctrl-[“和”F5“;,vba,excel,Vba,Excel,是否有任何VBA代码模拟正常的gotoExcel函数Ctrl+[和F5” 用一个例子进一步阐述: 这里有两个工作表-Alpha和Beta 我想要一个密码 在Alpha工作表的单元格A2上按Ctrl+[键(即抓取单元格中的Beta!B5引用) 以便跳转到Beta工作表的单元格B5(使用Beta!B5引用进行跳转) 向右移动一个单元格,即Beta工作表的C5,并将该单元格着色为黄色 最后做一个F5返回到Alpha工作表的单元格A2 我在谷歌上搜索了两个小时,搜索了各种关键词,如goto,ctrl-[

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

用一个例子进一步阐述:

这里有两个工作表-
Alpha
Beta

我想要一个密码

  • Alpha
    工作表的单元格
    A2
    上按Ctrl+[键(即抓取单元格中的Beta!B5引用)
  • 以便跳转到
    Beta
    工作表的单元格
    B5
    (使用Beta!B5引用进行跳转)
  • 向右移动一个单元格,即
    Beta
    工作表的
    C5
    ,并将该单元格着色为黄色
  • 最后做一个F5返回到
    Alpha
    工作表的单元格
    A2
  • 我在谷歌上搜索了两个小时,搜索了各种关键词,如
    goto
    ctrl-[
    F5
    上一个选择
    ,等等,但都没有用

    补充说明:

    我试图模拟goto函数Ctrl-[和F5,以便任何活动单元格(链接到另一个工作表中的另一个单元格)处于打开状态时,VBA代码都可以执行跳转、进行颜色着色并跳回原始工作表。即,以下代码限制过多


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

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

    • 导航到引用所选单元格的第一个单元格-看起来它包含一些好的建议
    • 返回到上一张工作表-您可以在功能开始时引用活动工作表,然后再将其还原,即:

    像这样的东西,以便在页面之间来回移动将起作用

    '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)
    

    对于从一个单元到另一个单元的几次跳转,一个类模块像堆栈一样执行推送和弹出功能将是理想的。

    Problem.xlsx不公开可见(需要注册),所以我已经删除了链接。请重新上传到其他地方。对不起,伙计们。我刚刚编辑了指向该文件的链接。它现在应该可以工作了。SkyDrive也有同样的问题:…尽管它仍然比一些随机论坛链接好。再次道歉..我已经发布了指向该文件的新链接。谢谢Cthulhu.Ctrl-[等于Application.Goto Reference:=CStr(ActiveCell.FormulaR1C1)“return”跳转'F5'如何?@user2180895您可以将当前位置的值存储在一个变量(或一个集合,如果它是多个嵌套跳转)中并返回您的路径。此代码可以显示Goto对话框:Application.Dialogs(xlDialogFormulaGoto)。显示是否有方法对单击“ok”进行编码,那么它将是一个F5+Enterfunction@user2180895我认为这是不可能的。无论哪种方式,我都建议您在VBA代码中这样做,而不与UI元素交互,类似于上面详述的方式。
    '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
    
    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)