google-apps-script - Apps 脚本:检查范围是否为空并复制数据
问题描述
我正在尝试使用 google 表格构建一个自动列表。第一张表(A)用于输入一周的生产数据。第二张表(B)应该是数据存档。因此,我希望将工作表 A 中的内容复制到工作表 B,然后在工作表 a 中删除。它应该被复制到工作表 B 的下一个空白区域。
我的问题必须在“while”或/和“if”的符号内,但似乎没有任何工作正常。
while 检查工作表 A 是否已清空,如果不是,“if”函数检查工作表 B 中的特定范围是否为空。如果是这种情况,它应该复制数据然后删除它。否则工作表 b 中范围的列将更改为下一个范围 (spaltennummer + 6)。
在进行故障排除时,它要么停留在一段时间内(发现没有空范围?),要么运行而没有任何影响。我试过“== 0”、“==”、“isblank”等等。(每个选项都可用?)。谷歌似乎无法为我提供答案......
感谢您的帮助。
代码:
function myFunction() {}
function leerzelle(){
var spaltennummer = 4;
var rangeDatenarchiv = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Tabellenblatt1").getRange(8,spaltennummer,15,5);
var rangeDateneingabe = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Dateneingabe").getRange("J8:N22");
var values = rangeDateneingabe.getValues();
while(rangeDateneingabe !== 0){
if(rangeDatenarchiv == 0) {
rangeDatenarchiv.setValues(values);
rangeDateneingabe.setValues("");
}
else{
spaltennummer = spaltennummer + 6;
}
}
}
解决方案
尝试这个:
代码:
function leerzelle() {
var spaltennummer = 4;
// Data entry
var rangeDateneingabe = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Dateneingabe").getRange("J8:N22");
var values = rangeDateneingabe.getValues();
// While we have value in data entry sheet
while (!rangeDateneingabe.isBlank()) {
// Update archive everytime you increment in else
var rangeDatenarchiv = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Tabellenblatt1").getRange(8, spaltennummer, 15, 5);
// If archive range is blank, move values
if (rangeDatenarchiv.isBlank()) {
rangeDatenarchiv.setValues(values);
rangeDateneingabe.clearContent();
}
else {
spaltennummer = spaltennummer + 6;
}
}
}
笔记:
- 您只是不能将范围与数字进行比较,
isBlank
而是用来检查它是否没有值。 - 您不能
setValues("")
在范围上使用来删除内容,clearContent
而是使用来删除这些值。 - 每次使用递增的列号循环时,您都需要重新声明存档范围
参考:
推荐阅读
- python - 调用 Twitch 时 BeautifulSoup 不返回 html
- python - CS50 pset6 // cash.py // 未显示所需的适当数量的硬币
- javascript - 显示进度条vue flask
- c++ - c++ 代码块中的“this”关键字指的是什么?
- javascript - 如何在视口宽度减小的情况下将 a 从最大高度缩小到最小高度?
- python - django.db.utils.OperationalError:SQLite3 数据库中没有这样的表
- flutter - 类型不匹配:推断类型为 PluginRegistry 但应为 FlutterEngine
- javascript - 如何对重复对象键日值的数组进行排序并创建一个具有对象坐标的新数组,其中 y 将保存重复值
- html - 你可以有背景图像:线性渐变(到中心......);
- python - 在所有列都在字符串中的python数据框中添加密集排名