谷歌应用程序脚本中的 CopyTo 将无法完成超过 1000 行的执行

2024-02-05

I am using originalRange.copyTo(rangeToCopyTo) to basically pull down functions for the number of rows of data I have. CopyTo works fine for a smaller number of rows of data but when I get to large reports that have 1000 results it doesn't finish. It looks like it pulls down the data but it doesn't actually fill in the cells correctly, they are left blank. I have tried using SpreadsheetApp.flush() but that doesn't work and I have also tried making the program sleep directly after the call with Utilities.sleep(some value in ms). I have been stuck for a while so any help would be greatly appreciated. Thank you. Picture of spreadsheet functionality I'm trying to create

红色框是我的原始范围,这些单元格充满了引用左侧数据的公式(我必须滚动,以便一些数据与行号一起离开屏幕到左侧)。蓝色框是我向下拖动到底部的范围(有 1000 行,所以想象一下蓝色框向下延伸 1000 行)。 G 列右侧的绿线一开始只有 3 行长,因为它是从模板表中复制的。因此,由于我看到该行已一直延伸到底部,我知道该函数几乎可以正常工作,只是在进入下一张纸之前没有填写我需要的所有公式,因此它会被跳过并留空。

function autoFillReport(sheet) {
  var rowsInSheet = sheet.getRange("A5:A").getLastRow();
  
  //get last row number of data
  var labelColumn = sheet.getRange("A5:A").getValues();
  var lastRowOfData;
  for (var i = 0; i < rowsInSheet - 4; i++) {
    if (labelColumn[i].toString().length < 1) {
      lastRowOfData = i + 4;
      break;
    };
  };
  
  //get last row number of rank formulas
  var trafficRankColumn = sheet.getRange("H5:H").getValues();
  var lastRowOfFormulas;
  for (i = 0; i < rowsInSheet - 4; i++) {
    if (trafficRankColumn[i].toString().length < 1) {
      lastRowOfFormulas = i + 4;
      break;
    };
  };
  
  //autofill remaining rows with rank formulas
  if (lastRowOfFormulas < lastRowOfData) {
    var originalRange = sheet.getRange("G5:L5");
    var targetRange = sheet.getRange("G5:L" + (lastRowOfData));
   // originalRange.copyTo(targetRange);
    originalRange.autoFill(targetRange, SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES);
    runRemainingFormulas = true;
  };
};

您想将公式复制下来吗?尝试这个

  var ss = SpreadsheetApp.getActive();
  var sheet = ss.getSheetByName('YOUR_SHEET');
  var range = sheet.getRange(5, 7, 3, 6);
  var targetRange = sheet.getRange(5, 7, sheet.getLastRow(), 6);
  range.autoFill(targetRange, SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES);

这应该将公式一直复制到工作表的最后一行。 “getRange()”方法接受的参数表示左上角单元格(G7 - 第 5 行,第 7 列)和最右下角单元格(最后一行,第 6 列)的坐标。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

谷歌应用程序脚本中的 CopyTo 将无法完成超过 1000 行的执行 的相关文章

  • 我可以使用开发者密钥通过 Google Sheets API 无需 Oauth 向 Google Sheet 写入数据吗?

    我正在开发一个使用 Google Sheets API 读取和更新 Google 电子表格中的值的应用程序 我可以使用我的开发人员密钥进行读取 但是尝试写入会返回此错误 请求缺少所需的身份验证凭据 需要 OAuth 2 访问令牌 登录 co
  • 对不同长度的数组使用 setValues()

    我在 Google Apps 脚本中有一个二维数组 其中包含不同长度的数组 我想在电子表格中设置数组的值 但是 由于其中的数组长度不同 我收到一个错误 本质上是说范围和数组高度不对齐 我在下面列出了数组结构的示例 如果我向每个单独的数组添加
  • 您无权执行该操作

    我有一个时间触发的脚本 可以定期从外部源检索内容并用它更新 Google 网站页面 根据this https developers google com apps script guides triggers installable res
  • 如何搜索 Google 电子表格?

    我正在进行一些详尽的搜索 需要确定电子表格中是否已存在新域 URL 然而 所有 Spreadsheet 对象都没有搜索功能 即大多数 Document 对象中的 findText 功能 我觉得我错过了一些重要的事情 我缺少什么 查找文本函数
  • .setFormula() 并收到错误缺少 ) 参数列表

    I have setFormula 并坚持这一点 我认为问题在于逗号 在发布这个问题之前 我研究了几个在线论坛 但没有运气 也许这里有人可以帮助我 我确实知道使用的规则 and 这就是为什么我尝试了几个公式 但仍然收到错误消息 参数列表后缺
  • 根据标准在多个需求之间分配数量

    我正在创建一个周期盘点表 表 1 将是用户输入 其中将放置找到的材料和数量 表 2 是盘点时的库存快照 我希望将找到的材料数量分配到表 2 上的数量中 直到表 1 的数量用完为止 按照从最新批次 日期代码 到最旧批次 先进先出 的顺序分配数
  • 将 Google 工作表图表导出为图像

    请您帮助了解如何使用谷歌脚本将图表导出到图像 我写了这段代码 但它不起作用 我担心 APIgetAs已弃用 function TestEmailCharts var sheet SpreadsheetApp getActiveSheet v
  • 是否可以将 .gs 文件上传到复制的 Google 文档的应用程序脚本项目?

    我复制了一个电子表格供多人使用 并附加了脚本 我的问题是如何修改项目中的脚本 而不必将每个更改复制并粘贴到 gs项目中的文件 This is the base document from which the other versions w
  • 更新行时获取电子邮件用户值

    我和我的团队有电子表格 当他们更新行 基于他们使用的帐户 时 如何 自动 获取电子邮件用户值 因此 每次他们更新 任务 列时 电子邮件 列都会自动更新 就像下表一样电子表格 https i stack imgur com lgDhF png
  • Google Apps 脚本:从云端硬盘下载文件(同一用户)

    我正在尝试编写一个 Google Apps 脚本来下载特定云端硬盘文件夹中的所有文件 可能是 csv 文件 我找到了 getDownloadUrl 方法 但我不知道该做什么do用它 我目前正在尝试以下代码 其中files是文件夹中的文件列表
  • 触发器根据其创建维护激活序列并在每次运行时保护电子表格数据

    我正在向我的 Web 应用程序发送 5 个请求 import requests backodds 3 00 layteam Flamengo layodds 1 50 advantage 25 55 webAppsUrl https scr
  • 如何读取 Google 表格中单元格的颜色

    我正在使用 Python Google Sheets API 并且我想读取单个单元格的颜色 我已阅读文档 但我只能找到有关如何从单元格检索文本的信息 而不是颜色格式的信息 您可以使用方法 电子表格 get https developers
  • 如何更改 Google 表格中图表的背景不透明度?

    我想在 Google 表格中设置 Google 图表的透明度或不透明度 就像在 Microsoft Excel 中一样 将图像设置在文本后面 以便文本仍然可读 不过好像该功能不起作用 功能预览 http drive google com f
  • 如何在 Google 电子表格中使用 Google 脚本从相邻单元格获取值?

    如果之前有人问过这个问题 我深表歉意 但我已经寻找了一个例子 不幸的是我无法找到答案 因此我为什么在这里问 如果我在 Google 电子表格中有一个自定义函数 如果内容是动态生成的 我如何获取单元格的值 当它是固定值时我可以获取该值 但当它
  • 如何使用应用程序脚本在 Google 电子表格中移动工作表 [重复]

    这个问题在这里已经有答案了 我想使用应用程序脚本在电子表格中移动工作表 怎么做 最好的直播 你看过吗文档 https developers google com apps script reference spreadsheet sprea
  • 图像未显示在从 HTML 创建的 PDF 上

    我想动态创建 PDF 这意味着我将从 Google Drive 获取文件 然后将它们放入 HTML 代码中 并尝试从中创建 PDF 一切工作正常 除了图像没有显示 我现在正在做的是 从 HTML 字符串创建 HtmlOutput 获取该 H
  • 一起使用“过滤”和“排序”的 Google 表格

    这是我的第一个问题 我希望一切都好 我是使用谷歌表格的新手 但我正在慢慢进步 我正在尝试构建一个工作表 其中包含工作表 1 中的所有数据 在工作表 2 上 我想过滤工作表 2 中 D 列中标有数字 1 的所有数据 为此 我正在使用 FILT
  • 谷歌表格根据今天的日期隐藏行

    在 Google Sheets 中 当 A 列中的日期等于或早于今天的日期时 我需要一个脚本来自动隐藏工作表 1 中的行 因此 如果今天是 2018 年 8 月 29 日 单元格 A3 中的日期是 2018 年 8 月 28 日 则第 3
  • 根据单元格值隐藏列

    在我的谷歌电子表格 A 中 我使用 TRANSPOSE 和 IMPORTRANGE 公式的组合从日历电子表格 B 导入数据 以便填写事件的工作时间表 因为每个日期都有 3 个事件空位 但这些空位并不总是被填满 所以我收到了很多过时的列 表格
  • 查询新的谷歌电子表格

    我使用谷歌可视化创建了一个折线图 该代码查询谷歌电子表格 当我使用普通电子表格 第 1 行 时 它可以工作 当我使用新的谷歌电子表格 第 2 行的 URL 时 出现以下错误 Error in query request time out 我

随机推荐