google-apps-script - Google Sheets Script - 这个复制列的脚本有效,但它的形式不好?
问题描述
这个脚本有效(我为自己创建了我的第一个脚本而感到自豪!),但我担心拥有两个复制/粘贴类型的函数可能是一种糟糕的形式,尤其是考虑到它们共享一组通用的列。一个点会有很多数据(3,000 行,38 列)。中间应该有停顿吗?脚本是否在开始第二个函数之前完成了第一个函数?我可以拥有两个功能吗?谢谢您的帮助。
//Copy 3 cols with original data into a backup range.
//Copy the 3 update cols to the original cols as values only
function testReplace_Orig_Review_tag_Rating_Cols_with_Updates () {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Sheet1');
var backup = sheet.getRange(3, 35, ss.getLastRow()-3, 3); // backup of original reviews, tags, ratings before they get overwritten
var update = sheet.getRange(3, 32, ss.getLastRow(), 3); //updated reviews, tags, ratings
var original = sheet.getRange(3, 13, ss.getLastRow()-3, 3); //original reviews, tags, ratings
original.copyTo(backup,SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
update.copyTo(original,SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
}
背景:我在一张纸上执行 importxml,然后将值复制/粘贴到另一张纸上。在此仅值页面中,我必须更新 3 列。我在工作表的末尾添加了 3 个 cols,如果原始 cols 为空,我会在其中执行 importxml。但是当然,一旦这些列得到更新,我必须将数据粘贴到原始列中,仅作为值。在我搞砸所有这些之前,我想在它们被覆盖之前备份这 3 个原始 cols。这就是我的脚本所做的。它备份原始列,然后将更新的列粘贴到原始列中。
解决方案
试试这个:
function testReplace_Orig_Review_tag_Rating_Cols_with_Updates () {
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetByName('Sheet1');
var backup = sheet.getRange(3,35,sheet.getLastRow()-2,3);
var update = sheet.getRange(3,32,sheet.getLastRow()-2,3);
var original = sheet.getRange(3,13,sheet.getLastRow()-2,3);
original.copyTo(backup,SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
SpreadsheetApp.flush();
update.copyTo(original,SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
}
推荐阅读
- c# - ASP POST ActionResult 收到 0 而不是提供的 ID 值
- python - 大型 Dask/Pandas 数据帧(27M 行 x 52 列).to_csv 或 .to_sql MemoryError
- typescript - Typescript中没有省略号的动态参数
- php - 检索每个组中的最后一条记录没有得到预期的结果 - MySQL
- web2py - 有没有办法将另一个表中引用的 firleds 的引用信息保存为字符串字段?
- javascript - 遵循文档以使用弹性 ui 自定义主题时遇到问题
- python - Skimage.draw.ellipse 生成两条不需要的线
- python - 如何在 Python 中一次保存多个数据
- vue.js - 可能使用插槽将值从父级传递给子级
- javascript - VueJS子到父隐藏组件的布尔值