【发布时间】:2021-04-24 10:56:41
【问题描述】:
我有一个谷歌表,我将其用作每月交接表,底部有待办事项列表。
待办事项列表有一个复选框,然后是几列信息(日期、任务和分配给谁)
我创建了一个按钮,该按钮运行一个宏来复制工作表,以便在月底创建一个复制工作表。
我想复制待办事项列表中尚未被“勾选”为已完成但我不太擅长谷歌应用脚本中的逻辑的任何任务。
谁能帮我编写 if 语句,将未勾选的行复制到重复的工作表或复制所有行然后删除勾选的行。
谢谢,乔
更新:玩了几个小时后,这就是我所拥有的:
function ToDoCopy() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var duplicateSheet = ss.getSheetByName("JUNE");
var originalSheet = ss.getSheetByName("MAY");
var lastRow = originalSheet.getLastRow() + 1;
for(var j = 24; j < lastRow; j++)
{
if(originalSheet.getRange(j,2).getValue() ==false && originalSheet.getRange(j,3).getValue() != 4)
{
var nextRow = duplicateSheet.getLastRow() +1;
var getCopyRange = originalSheet.getRange('B' + j + ':P' + j);
getCopyRange.copyTo(duplicateSheet.getRange(nextRow, 2));
}
}
}
它几乎可以工作了,但它会将复制的项目添加到新工作表的待办事项表下方,而不是将它们添加到顶部。我不知道如何解决这个问题!
(p.s. && originalSheet.getRange(j,3).getValue() != 4 部分是一个隐藏行,我用于自动排序表格,'4' 表示它基本上是空的。
【问题讨论】:
-
你在使用调试器吗?这有助于快速诊断软件问题。还可以考虑添加临时诊断输出语句来帮助修复您的代码。
-
你能加一个Minimal Reproducible Example吗?例如一张有两张纸“JUNE”和“MAY”的纸?在为此编写解决方案时,您似乎有很多隐藏的行和潜在的隐藏功能。
标签: if-statement google-apps-script google-sheets logic