【问题标题】:Jump to specific cell in google spreadsheets macro跳转到谷歌电子表格宏中的特定单元格
【发布时间】:2021-06-09 21:53:33
【问题描述】:

我知道 f5 打开跳转到单元格对话框,它的问题是,虽然它允许您执行一次,但下次按 f5 时,跳转到另一个特定单元格,上一个文本未突出显示,因此您需要将手从键盘上移开并用鼠标选择它。

如果我有一种方法可以让我的手不从键盘上移开,那将大大加快我的工作流程。

有什么想法吗?

比如,我需要一个宏来弹出转到范围对话框并选择那里的任何文本,以便我可以输入一个新的单元格范围(例如:a391)

谢谢!

【问题讨论】:

    标签: google-apps-script google-sheets spreadsheet


    【解决方案1】:

    有一种向表格添加自定义宏的简单方法。您只需要预先创建一个bounded script,其中包含一个function 以及您想要的操作。然后您可以按照以下步骤操作:

    1. 转到Tools > Macros > Import
    2. 找到您的函数并单击Add Function,然后单击X 关闭。
    3. 转到Tools > Macros > Manage Macros
    4. 为您的宏分配一个编号,然后单击Update
    5. 使用Ctrl + Alt + Shift + {NUMBER} 运行宏

    按照这些步骤,您将毫无困难地创建自定义宏,但如有任何疑问,请随时问我。

    【讨论】:

    • 很遗憾,现在谷歌表格上的导入功能已禁用。我有一个朋友为 excel 做了一个简单的对话框宏,我试图导入它,但它没有用。
    • 要启用此菜单,您需要先创建一些脚本。 ToolsScript Editor 等。但恐怕你不能通过脚本在单元格之间跳转。不过我可能错了。
    【解决方案2】:

    为 MacOS 工作(High Sierra,可能它也适用于较新的操作系统)

    我从这里下载了文件AppleScript Toolbox.osaxhttps://astoolbox.wordpress.com/

    将文件放入文件夹:/Users/me/Library/ScriptingAdditions

    运行Automator 并启动一个新服务:

    粘贴此脚本

    activate application "Firefox" -- or "Safari" or "Chrome", etc
    set mousePointLocation1 to {1700, 250} -- coordinates depend on your screen size
    AST click at mousePointLocation1 number of clicks 1
    

    然后保存:

    转到Preferences > Keyboard > Services 并为此服务添加快捷方式

    之后,您将在此处看到新的快捷方式:

    在 Google 电子表格中,我按 F5,显示面板,然后按 ^F5,光标跳到此面板并单击。

    我是 macOS 的菜鸟,我相信它可以做得更好。这就是我现在设法做到的方式。

    脚本的另一种修改可能更方便:

    activate application "Firefox"
    
    tell application "System Events" 
      key code 96 -- this is F5 key
    end tell
    
    delay .5
    
    AST click at {1700, 250} number of clicks 2 -- or 3 maybe
    

    这样您就不需要按F5。只需按^F5 并继续。


    有效


    以防万一。如果你知道 Python。我已经设法使用 Python 模块pynput 按下F5 移动并单击鼠标:

    from pynput import mouse, keyboard
    
    k = keyboard.Controller()
    k.press(keyboard.Key.f5)
    k.release(keyboard.Key.f5)
    
    m = mouse.Controller()
    m.position = (1700, 240)
    m.press(mouse.Button.left)
    m.release(mouse.Button.left)
    m.click(mouse.Button.left, 2)
    

    https://pynput.readthedocs.io/en/latest/

    可以这样转换成macOS Service:

    然后您可以通过Keyboard > Services > Add Shortcut 以相同的方式运行此服务

    【讨论】:

    • 谢谢您,我按照您的所有步骤操作,但不幸的是,当我尝试运行它时出现错误。它说:预期行尾等,但找到标识符我的脚本显示:激活应用程序“Chrome”将mousePointLocation1设置为{903,270} AST点击mousePointLocation1点击次数1如果我可以让它工作,这正是我需要的.
    • 尝试像这样注释掉第一行:-- activate application "Chrome" 您使用的是什么版本的 macOS?我刚刚从您的评论中复制了文本,它工作正常。查看我的更新。
    • 我正在使用 Mojave (10.14) 仍然是同样的错误。当我得到它时,它会突出显示click这个词,我不知道这是否意味着什么。我尝试使用和不使用行激活应用程序“Chrome”或激活应用程序“/Applications/Google Chrome.app”相同的错误:(
    • 我认为值得提出一个新问题。 “如何在 Mojave 上使用键盘快捷键在给定坐标处执行鼠标双击?”。坦白说,我对 MacOS 的了解相当惨。
    • 我已经添加了 Python 解决方案。以防万一
    【解决方案3】:

    Google 电子表格中的键盘快捷键相当糟糕。如果您使用的是 Windows,我建议您尝试 Autohotkey。它可以将光标移动到屏幕上的任何坐标上(坐标可以设置为相对当前窗口)。例如“Win+F5”可以作为 F5 + 在屏幕右上角移动光标并执行左键。

    【讨论】:

    【解决方案4】:

    我刚刚发现了另一个更明显的原生解决方案。

    将代码放入脚本编辑器:

    function jump() {
      var range = SpreadsheetApp.getUi().prompt('Input cell').getResponseText();
      SpreadsheetApp.getActiveSheet().getRange(range).activate();
    }
    

    保存并将函数添加为宏:

    然后为宏分配一些快捷方式:

    之后你可以按下快捷键(在我的例子中是CmdOptionShift5),输入单元格地址,按 TabEnter 就可以了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多