我在嘗試使用Google文檔電子表格替換部分Microsoft Excel電子表格的可行性。我怎樣才能創建一個谷歌應用程序腳本函數在谷歌文檔電子表格的自定義鍵盤快捷方式?這是我通常用VBA和Excel做的事情。如何爲Google應用腳本功能創建自定義鍵盤快捷鍵?
回答
Apps腳本僅公開server side events。不幸的是,你今天不能註冊像鍵盤筆畫這樣的客戶端事件。請在我們的登錄問題issue tracker
正如@Arun所說,這還不支持。請參閱並明星issue。
我有一個類似的問題,儘管我沒有得到多少解決但我想前進的方向可以通過這個keypress event handler under Class Textbox
發現我不知道,如果這都繞服務器的問題所困擾只有阿倫指出,但我確信希望如此。在我浪費太多時間嘗試之前,請隨時糾正我的推理! :)
此方法是UiApp服務的一部分,它不提供從文檔或電子表格UI中調用函數的解決方案。在UiApp或html服務中,您當然可以使用按鍵來觸發事件 –
好的。那麼有沒有什麼可以讓UiApp或html服務(我認爲可以成爲擴展的一部分)調用在Google Docs中編寫的Apps腳本中的宏,然後可以執行鍵盤快捷方式直接完成的必需步驟? –
確實沒什麼...可以使用這種模式與側邊欄...邊欄中的用戶界面將具有可以調用腳本功能的按鈕。一些新的附加組件以非常優雅的方式使用該配置。 –
長話短說:寫一個html服務,它使用按鍵事件處理程序捕獲按鍵事件,並將它們與所需的熱鍵快捷鍵進行比較,然後在應用程序腳本中調用服務器端的相應子例程以內聯要求按鍵,格式或文檔更改。
就可行性而言,並不像你已經熟悉的vba那麼簡單,但是一旦你通過了不同的做事方式,並不那麼困難。
我不認爲我明白你在說什麼。你有鏈接到一篇文章或一些文檔,或者你能展示一個例子嗎? – User
對不起,沒有。我只是在爲朋友研究類似問題的同時閱讀相關文件。 不幸的是,我必須承認,我現在的答案似乎是錯誤的。我無法得到此確認,但離我最近的人可以告訴我們處理Docs文本輸入面板的功能被阻止。我可以編寫一個html服務側邊欄,但我無法獲取必要的對象,以便爲主文檔面板創建按鍵事件處理程序。我猜測他們可能是在試圖阻止某人編寫鍵盤記錄或其他東西。 –
只是更新,現在可能的解決方案,蓋伊提到,通過IFRAME,你可以創建一個側欄,一個STUB只是爲了進入鍵盤命令,用jquery處理它們,並運行適當的功能, 。
爲此,一個可能的解決方法是專門爲「觸發器文本」設置專欄,爲您要執行的每個操作定義不同的基於文本的觸發器,然後創建一個函數來檢查值並執行操作基於「觸發文本」。然後,您可以在腳本編輯器的「資源」下的項目觸發器中爲熱鍵功能設置一個onEdit事件觸發器。
這種方法最大的缺點是,onEdit觸發器需要(至少對我來說)約7秒鐘完成更新並執行更新。如果你需要更快的處理,你可能需要尋找一種替代方法。
我在下面提供了一個示例,以瞭解如何根據指定的「觸發器」列中的觸發器文本更改行顏色。您可以在檢查觸發文本輸入後,通過腳本執行任何可以在工作表上完成的任何操作,例如更改值,設置字體粗細,複製數據,甚至運行其他功能。
/*you will need to add an onEdit trigger to your project
for this to run when you edit the cell*/
//function to update row color using entered text in a specified "trigger" column
function hotKey(){
//get the cell you edited and the associated column and row number
var cell = sheet.getActiveCell();
var thisCol = cell.getColumn();
var thisRow = cell.getRow();
//set a range variable for the entire row
var colorRow = sheet.getRange(thisRow,thisCol,1,Cols);
//get the edited value for the cell as a string
var val = cell.getValue().toString();
//check that the edited cell is in the trigger column
if (thisCol = 1){
//update the row color based on the entered value
if(val == "g"){
colorRow.setBackground("#00ff00"); //sets row color to green
cell.clearContent(); //delete the trigger cell value
}else if(val == "r"){
colorRow.setBackground("#ff0000");
cell.clearContent();
}else if(val == "fd"){
colorRow.setBackground("#fff2cc");
cell.clearContent();
}else if(val == "pr"){
colorRow.setBackground("#ffff00");
cell.clearContent();
}else if(val == "cn"){
colorRow.setBackground("#6fa8dc");
cell.clearContent();
}
}
}
- 1. 如何在Android Studio中創建自定義鍵盤快捷鍵
- 2. 如何爲Google搜索結果創建鍵盤快捷鍵?
- 3. 自定義鍵盤快捷鍵
- 4. xcode功能菜單鍵盤快捷鍵
- 5. 在mac上創建R功能的鍵盤快捷鍵?
- 6. 如何在CKeditor中使用jQuery自定義鍵盤快捷鍵?
- 7. iOS應用程序上的自定義鍵盤快捷鍵
- 8. 如何使用鍵盤上的鍵「c」調用鍵盤快捷鍵功能
- 9. 鍵盤快捷鍵創建ubuntu
- 10. 如何將自定義鍵盤快捷鍵添加到GWT CellTable
- 11. 如何編寫自定義鍵盤快捷鍵
- 12. 如何爲DataGridView創建自定義快捷鍵?
- 13. 如何爲網站創建鍵盤快捷鍵?
- 14. 如何爲SublimeREPL創建鍵盤快捷鍵?
- 15. 如何重新定義內置鍵盤快捷鍵的行爲?
- 16. 爲可定製鍵盤快捷鍵創建輸入
- 17. 創建JS鍵盤,功能未定義?
- 18. 爲web應用程序使用javascript的自定義鍵盤快捷鍵
- 19. 鍵盤快捷鍵
- 20. 鍵盤快捷鍵
- 21. 在linux c應用程序中創建自定義快捷鍵
- 22. 使用自定義瀏覽器鍵盤快捷鍵
- 23. 在控制檯中使用自定義鍵盤快捷鍵
- 24. :自定義鍵盤快捷鍵不起作用?
- 25. Google +的+1鍵盤快捷鍵?
- 26. Windows自定義快捷鍵
- 27. 如何在網站上實現鍵盤功能快捷鍵?
- 28. 如何實現新iPad Pro鍵盤快捷鍵功能?
- 29. 如何在JavaScript中觸發鍵盤快捷鍵功能?
- 30. 使用鍵盤快捷鍵
問題跟蹤器最接近的問題似乎是[問題306](https://code.google.com/p/google-apps-script-issues/issues/detail?id = 306)這可以做一些更多的星星/ upvotes,但是應用程序團隊對此有一種震耳欲聾的沉默:( –
有人在[issue 306 post 33](https://code.google。)上添加了一個工作解決方案。 com/p/google-apps-script-issues/issues/detail?id = 306#c33)! –