当前位置: 首页 > 知识库问答 >
问题:

Google Sheets-如何从iOS应用程序运行脚本?

傅啸
2023-03-14

我使用SpreadSheet中的脚本在活动行下面添加行,并从活动行复制内容。在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

共有2个答案

岳志义
2023-03-14

你可以用这样的方法运行你的函数:

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。

钮出野
2023-03-14

诀窍是通过将函数重命名为“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);
      }
    }

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

 类似资料:
  • 问题内容: Bash脚本非常有用,可以节省很多编程时间。那么,如何在C ++程序中启动bash脚本呢?另外,如果您知道如何使用户成为超级用户,那也会很好。谢谢! 问题答案: 使用功能。

  • 问题内容: 我尝试使用下面的代码来运行我从Apple脚本创建的独立实用程序应用程序,但是出现“无文件或目录不存在”错误。 我在项目,dist,父目录中放置了相同的副本(用于测试),但没有帮助。 因此,我的问题是:我对运行该应用程序的调用是否不好(也许是因为它不是Windows exe)?如何从Java运行Mac App? 谢谢 问题答案: Mac App Bunde不是可执行文件,而是具有特殊结构

  • 问题内容: 我正在写一个Java库,实际上是一个Clojure库,但是对于这个问题,重要的是它在JVM上运行。该库需要执行一些JavaScript。我尝试过Nashorn,但遇到了一些局限性,可能难以克服。另外,我想尝试NodeJS。 我希望我的库是独立的,不依赖于独立运行NodeJS的系统,因此需要一种特殊的部署机制将Java和NodeJS工件放置在正确的位置,以便由两个不同的网络服务器接收。但

  • 问题内容: 我想知道启动Flask应用程序的正确方法。该文档显示了两个不同的命令: 和 产生相同的结果并正确运行该应用程序。 两者之间有什么区别,以及用于运行Flask应用程序的区别是什么? 问题答案: 该命令是用于与Flask应用进行交互的CLI。该文档介绍了如何使用CLI命令和添加自定义命令。该命令是启动开发服务器的首选方法。 使用环境变量将命令指向您的应用程序。设置为与调试器和重新加载器一起

  • 我是新来的谷歌工作表脚本和卡住试图做以下事情。我有2列:C包含开始时间码,D包含结束时间码。第三列(F)包含从开始时间码和结束时间码产生的电影提示的长度。由于时间码来自脚本,因此包含结果的单元格不能导出为其他格式。因此,我试图创建第四列,将列F的结果打印为值。我设法写了一个小脚本,可以做到这一点。它看起来像这样: 问题是,当我编辑C或D中的任何时间码时,它不会自动执行。 所以我试了一下: 它没有给

  • 问题内容: 我想从Java程序中异步运行Shell脚本-即在Java程序开始执行该Shell脚本之后,它会继续执行其他操作-并且仅当Shell脚本返回对其的响应时才做进一步的工作..即,它不会显式停止并等待shell脚本的响应。 这可能/可行吗?如何实现这种功能? 基本上,我将使用一个将管理所有这些服务器的服务器来监视多个服务器-为此,它将在每个服务器上运行shell脚本…因为有许多服务器,因此在