我用excel做了这个,但不能在线使用。所以我在谷歌表格中制作了它,但它不起作用。我想做的事: 数据(仅值,无格式)从工作表 Tmrw 范围 C3:Y20 复制到工作表今天范围 C3:y20,然后清除工作表 Tmrw 范围 C3:Y20 中的数据 我使用了这个代码:
0 -2
-2 0
0 2
2 0
0 -2
-0.5 -0.5
0.5 -0.5
0.5 0.5
-0.5 0.5
-0.5 -0.5
它不起作用。我并不感到惊讶。
文件在这里: https://docs.google.com/spreadsheets/d/11uyaRe7khP9PywXKkEh5e5xWLvm68Nw58R6dHkaTxvk/edit?usp=sharing
答案 0 :(得分:0)
getRange
为 Class Spreadsheet 时,您可以将工作表名称包含到 A1Notation 中。
ss.getRange("'Today'!C3:Y20")
代替 ss.getSheetByName("Today");
。"Tmrw"!C3:Y20"
和 "Today!C3:Y20
没有被 "
括起来。在这种情况下,请修改为 "Tmrw!C3:Y20"
和 "'Tmrw'!C3:Y20"
,以及 "Today!C3:Y20"
和 "'Today'!C3:Y20"
。copyTo
的参数是 copyTo(destination)
。当以上几点反映到你的脚本中时,它变成如下。
function moveValuesOnly() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var source = ss.getRange("'Tmrw'!C3:Y20");
var destRange = ss.getRange("'Today'!C3:Y20");
source.copyTo(destRange);
source.clear();
}
当您想使用 getSheetByName
时,您还可以按如下方式修改您的脚本。
function moveValuesOnly() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var srcSheet = ss.getSheetByName("Tmrw");
var source = srcSheet.getRange("C3:Y20");
var dstSheet = ss.getSheetByName("Today");
var destRange = dstSheet.getRange("C3:Y20");
source.copyTo(destRange);
source.clear();
}