微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用电子表格的工作表名称填充行 修改点:修改后的脚本:参考:

如何解决使用电子表格的工作表名称填充行 修改点:修改后的脚本:参考:

我有一个电子表格,其中包含带有一些食谱的多张工作表。我手动将工作表的标题存储在第一张工作表中,以引用另一个电子表格中的食谱标题,但这不能很好地扩展,所以我想自动化这个过程。我相信我无法使用任何内置函数来做到这一点,所以我正在尝试构建一个自定义函数来做到这一点。

我已经知道一些编码,但我对谷歌 API 的经验非常有限。我当前的尝试返回以下异常:“您无权调用设置值”。在谷歌这个错误之后,我发现自定义函数似乎无法为其他单元格设置值,所以我在这里寻找这种微不足道的行为的替代方法

这是我当前的代码

function updateSheetTitles() {
  var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
  var cell = SpreadsheetApp.getActiveSpreadsheet().getCurrentCell();
  var row = cell.getRow();
  var column = cell.getColumn();
  for (var i=0 ; i<sheets.length ; i++){
    if(i<1) //For passing trought the first sheet
      return;
    cell.setValue(sheets[i].getSheetName);
    var range = SpreadsheetApp.getActiveSheet().getRange(row+1,column,1,1);
    cell = SpreadsheetApp.getActiveSheet().setCurrentCell(range);
  }
}

这里有一张图片来说明我想要什么:

enter image description here

这可能是一项简单的任务,但我没有找到构建它的方法,因此我们将不胜感激。

解决方法

我相信你的目标如下。

  • 您想在活动的 Google 电子表格中检索工作表名称。
  • 您想将工作表名称放在活动单元格中。
  • 您想使用自定义函数实现此目的。

修改点:

  • 遗憾的是,setValue 不能在自定义函数中使用。我认为您的问题是由这个原因引起的。
  • 在您的脚本中,cell.setValue(sheets[i].getSheetName); 处未运行 getSheetName 的方法。如果您想使用这种方法,请像()一样添加getSheetName()
  • SpreadsheetApp.getActiveSpreadsheet() 可以声明一次。

为了实现您的目标,我想提出一个自定义函数来创建一个包含工作表名称的数组并返回该数组。

当以上几点反映到示例脚本中时,它变成如下。

修改后的脚本:

请将以下脚本复制并粘贴到 Google 电子表格的脚本编辑器中。并且,请将 =updateSheetTitles() 的自定义函数放到一个单元格中。这样,工作表名称将返回到行方向。

function updateSheetTitles() {
  return SpreadsheetApp.getActiveSpreadsheet().getSheets().map(e => [e.getSheetName()]);
}
  • 根据您的回复,当您想检索除第一张和第二张以外的工作表名称时,您也可以使用以下脚本。

      function updateSheetTitles() {
        return SpreadsheetApp.getActiveSpreadsheet().getSheets().map(e => [e.getSheetName()]).slice(2);
      }
    

参考:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?