google-apps-script - 如何使用按钮从一个谷歌工作表复制到另一个工作表
问题描述
我在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 ();
}
这没用。我并不感到意外。
解决方案
修改点:
- 当
getRange
使用 Class Spreadsheet 时,您可以在 A1Notation 中包含工作表名称。- 在这种情况下,
ss.getRange("'Today'!C3:Y20")
可以使用 代替ss.getSheetByName("Today");
。
- 在这种情况下,
"Tmrw"!C3:Y20"
并且"Today!C3:Y20
不被 包围"
。在这种情况下,请修改为"Tmrw!C3:Y20"
and"'Tmrw'!C3:Y20"
, and"Today!C3:Y20"
and"'Today'!C3:Y20"
。- 在您的情况下,我认为
copyTo
Class Range 的论点是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(); }
参考:
推荐阅读
- html - 翻转 SVG 但不是里面的文本
- image - 谷歌图片搜索结果中的“x-raw-image”是什么?
- ubuntu - 将主机网络中的静态/DHCP IP 分配给 Terraform 提供的 KVM 虚拟机
- python - 使用 VS 2019 在 Python 中的 %time 语法
- php - 谷歌索引 API 错误的 json 文件
- javascript - 如何监视 npm 库函数(Node.js)?
- tensorflow - 如何在没有 keras 的树莓派 4 上使用 TensorFlow lite?
- javascript - 如何根据它们的作用来解耦函数,而不是它们在 JavaScript 中的作用?
- c# - 将 Prolog 与 C# (Unity) 一起使用
- python - 不同的角色有不同的冷却时间 discord.py