跳转到 google 电子表格宏中的特定单元格

Jump to specific cell in google spreadsheets macro

我知道 f5 可以打开跳转到单元格对话框,它的问题是,虽然它允许您执行一次,但下次您按 f5 时,跳转到另一个特定的单元格,前面的文字没有突出显示,因此您需要将手从键盘上移开,然后 select 使用鼠标。

如果我有办法让我的手不离开键盘,那将极大地加快我的工作流程。

有什么想法吗?

例如,我需要一个宏来弹出转到范围对话框,并且 select 那里有任何文本,这样我就可以输入一个新的单元格范围(例如:a391)

谢谢!

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

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

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

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

解决 MacOS(High Sierra,它可能也适用于较新的 os)

我从这里下载了文件 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。我已经设法按下 F5 移动并使用 Python 模块单击鼠标 pynput:

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

以相同的方式 运行 此服务

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

将代码放入脚本编辑器:

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

保存并添加函数作为宏:

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

之后可以按快捷键(CmdOptionShift5 在我的例子中),输入单元格地址,按 TabEnter 然后我们开始。