fra*_*sta 2 google-sheets google-apps-script
我编写了一个脚本,旨在清除 Google 表格电子表格的内容并复制并粘贴另一张表格的内容。
需要清除的工作表称为“NEW_SHEET”,要复制的工作表称为“数据库”。
出于某种原因,该脚本目前不起作用。当我运行它时没有任何反应。另外,目前,我正在使用.getActiveRange选择要清除的范围。但是,我希望它是 A 到 AC 列,并且只到最后一行有数据。
这是我正在使用的代码:
function importDB() {
//Delete content of New Sheet
var sh1 = SpreadsheetApp.openById('SHEET_ID').getSheetByName('NEW_SHEET')
var range1 = sh1.getActiveRange()
range1.clearContent()
//Copy new database data
var sh = SpreadsheetApp.openById('SHEET_ID').getSheetByName('Database')
var range = sh.getDataRange();
var data = range.getValues();
var ts = SpreadsheetApp.openById('SHEET_ID').getSheetByName('NEW_SHEET')
ts.setValues(data)
}
Run Code Online (Sandbox Code Playgroud)
你不应该getActiveRange()在这里使用。下面的代码应该可以工作。
function importDB() {
//Delete contents of "A:AC" in New Sheet
var sh1 = SpreadsheetApp.openById('SHEET_ID').getSheetByName('NEW_SHEET').getRange("A:AC");
sh1.clearContent();
//Copy new database data
var sh = SpreadsheetApp.openById('SHEET_ID').getSheetByName('Database');
var range = sh.getDataRange();
range.copyTo(sh1.getCell(1,1));
}
Run Code Online (Sandbox Code Playgroud)
使用该copyTo()功能,您只需关注目标中的第一个单元格。因此,您需要注意从“数据库”复制的数据不会超出 AC 列,否则您将覆盖“NEW_SHEET”中的数据。为了防止这种情况,您可以尝试var range = sh.getRange("A:AC")而不是复制整个数据范围。
| 归档时间: |
|
| 查看次数: |
7541 次 |
| 最近记录: |