【问题标题】:Google Sheets - How to run a script from iOS app?Google 表格 - 如何从 iOS 应用程序运行脚本?
【发布时间】:2020-06-25 18:29:49
【问题描述】:

我在我的电子表格中使用脚本在活动行下方添加行并从活动行复制内容。 在 PC 上,我可以通过图像/绘图触发脚本,并且效果很好。但我无法弄清楚如何让它在 iOS 应用程序中工作,其中从图像触发不起作用并且将内容从一个复制到另一个是一场噩梦。我为每一行尝试了 onEdit 和 isChecked 但它会给我每次编辑的新行。请问您能帮忙吗?

function addRow() {
var sheet = SpreadsheetApp.getActiveSheet(),
    row = sheet.getActiveCell()
        .getRow(),
    rangeToCopy = sheet.getRange(row, 1, 1, 20);
sheet.insertRowAfter(row);
rangeToCopy.copyTo(sheet.getRange(row + 1, 1));
}

https://docs.google.com/spreadsheets/d/12WErwXRn6yPvG8FuR-DwltaSC-Fuk7aTB2NrJWMKFQ4/edit?usp=sharing

【问题讨论】:

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


【解决方案1】:

复选框可以在 iOS 界面上很好地工作,我实际上已将其用于一家大型餐厅的大量外卖订单(检查“准备好的”订单并自动向司机发送他们的订单已准备好)。我们需要对您的电子表格进行的唯一更改是为每一行添加一个复选框。

诀窍是通过将函数重命名为“onEdit”来使用 onEdit 触发器

这是脚本:

 function onEdit(e) {
      //IF the cell that was edited was in column 1 and therefore a checkbox AND if the cell edited was checked (not unchecked):
      if (e.range.columnStart === 1 && e.range.getValue() === true) {
        var sheet = SpreadsheetApp.getActiveSheet(),
            row = sheet.getActiveCell()
            .getRow(),
            rangeToCopy = sheet.getRange(row, 1, 1, 20);
        sheet.insertRowAfter(row);
        rangeToCopy.copyTo(sheet.getRange(row + 1, 1));
        //Reset checked boxes
        sheet.getRange(row,1,2,1).setValue(false);
      }
    }

注意:如果您连续快速检查一堆框,谷歌脚本可能会遗漏一些。这很好,因为它们将保持检查状态,您将能够看到那些没有运行的。只需取消选中并再次选中它们即可正常运行脚本。

【讨论】:

  • 这太棒了。即使在 iOS 上,它也能发挥魅力。爱它。非常感谢您的详尽解释!
【解决方案2】:

你可以像这样运行你的函数:

function onEdit(e) {
  const sh=e.range.getSheet();
  if(sh.getName()=='Your sheet name' && e.range.columnStart=='column you choose' && e.value=='TRUE') {
    e.range.setValue('FALSE');//resets the checkbox
    const row=e.range.rowStart;
    yourfunction(row);
  }
}

我会使用一列复选框,无论您选中哪个复选框,它都会运行您的函数并将活动行传递给它。或者您可以将 e 传递给它并使用 e.range.rowStart 获取活动行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-01
    相关资源
    最近更新 更多