【问题标题】:Google sheet buttons don't work on mobile谷歌工作表按钮在移动设备上不起作用
【发布时间】:2021-05-19 00:47:08
【问题描述】:

我最近注意到在 google 工作表中创建的按钮在移动设备上不起作用。我找到了解决方案,但是现在我想知道如何将文章中提供的代码指向工作表中的特定选项卡,例如“工作表 1”和“工作表 2”。因为我希望代码同时在“sheet 1”和“sheet 2”两个选项卡上工作。这样两个不同的用户可以同时在两个不同的选项卡上工作。

有人知道如何解决这个问题吗?

https://medium.com/macadamscripts/create-button-in-google-sheets-mobile-2979579025ef#:~:text=Luckily%2C%20there%20is%20a%20workaround,serve%20as%20the%20%E2%80%9Cbutton%E2%80%9D

function onEdit(e) {
if (e.range.getA1Notation() == 'D4') {
if (/^\w+$/.test(e.value)) { 
eval(e.value)();
e.range.clear();
   }
  }
}

最好, D

【问题讨论】:

  • 我无法理解I point the code presented in the article to the specific tab in my worksheet, for instance, "sheet 1" and "sheet 2"。我为此道歉。我可以问你目标的细节吗?
  • 嗨鲁本,感谢您指出同级帖子。我检查了代码,它工作正常。我现在唯一的问题是如何使 onEdit (e) 函数在两个不同的选项卡“Sheet1”和“Sheet2”上工作,如果我们已经找到了将其指向特定选项卡名称的方法。函数 onEdit(e){ if (e.range.getA1Notation() == 'D4' && e.range.getSheet().getName() === "Sheet 1") { if (/^\w+$/.测试(e.value)){ eval(e.value)(); e.range.clear(); } } }

标签: google-apps-script button google-sheets mobile


【解决方案1】:

尝试使用 activeSheet.getName 来处理/检查电子表格上的特定工作表。请参阅下面的示例代码了解如何实现它:

function onEdit(e) {
  //Set a comment on the edited cell to indicate when it is changing.
  var range = e.range;

  var activeSheet = e.source.getActiveSheet();
  if (activeSheet.getName() == "Sheet1") { //Sheet1 is just a sample name of the sheet. Modify it according to the name of your sheet.
     range.setNote("Last Modified:" + new Date());
  }
}

参考:

use onedit() trigger on a specific sheet within google scripts for google sheets

【讨论】:

  • Monique G. 感谢您分享答案!这里唯一的问题是我想保留仅当特定工作表(Sheet1)上的特定单元格编号(例如 D4 )发生更改时才会触发移动设备上的操作的功能。在桌面上,我对此没有任何问题,因为我正在使用按钮:/。你知道如何克服这个吗?最好的,D
【解决方案2】:

Google 仅针对可能阅读此内容的任何人定义:

电子表格 = 包含子工作表的实际工作表文档。

Sheet = Ducatia 使用的“标签”。

无论如何,要回答这个问题,您可以尝试使用this,它将 tab 设置为指定的任何内容。您可以根据数组的索引选择工作表,但工作表顺序可以移动,不幸的是名称也可以更改,但不会像简单的工作表重新排序一样意外,所以只需要小心。您可以获得工作表的 ID,但我看不到按 ID 选择工作表的方法。如果我这样做了,我会更新这个。

我用过这样的东西:

  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName("TEST"));

如果您使用正确的名称运行上述程序,您可以看到您的电子表格将 UI 视图更改为指定的工作表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-22
    • 1970-01-01
    • 2021-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-21
    • 2018-05-26
    相关资源
    最近更新 更多