我在excel中做了这个,但不能在网上使用。所以我用谷歌单张制作了它,但它不管用。我想做的是:从工作表Tmrw范围C3:y20复制到今天工作表范围C3:Y20的数据(仅值,没有格式),在此之后,工作表Tmrw范围C3:Y20的清晰数据之后,我使用了以下代码:
function moveValuesOnly () {
var ss = SpreadsheetApp.getActiveSpreadsheet ();
var source = ss.getRange ("Tmrw"!C3:Y20");
var destSheet = ss.getSheetByName("Today");
var destRange = destSheet.getRange("Today!C3:Y20");
source.copyTo (destRange,"Today!C3:Y20);
source.clear ();
}它不起作用。我一点也不惊讶。
文件在这里:https://docs.google.com/spreadsheets/d/11uyaRe7khP9PywXKkEh5e5xWLvm68Nw58R6dHkaTxvk/edit?usp=sharing
发布于 2021-04-25 06:00:23
修改要点:
getRange时,可以将工作表名称包含到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时,还可以按以下方式修改脚本。
函数moveValuesOnly() { var ss = SpreadsheetApp.getActiveSpreadsheet();var srcSheet = ss.getSheetByName("Tmrw");var srcSheet= srcSheet.getRange("C3:Y20");var dstSheet =ss.getSheetByName(“今天”);var destRange = dstSheet.getRange("C3:Y20");source.copyTo(destRange);source.clear();}参考文献:
https://stackoverflow.com/questions/67250190
复制相似问题