【发布时间】:2023-02-11 14:45:22
【问题描述】:
如果 H 列显示“已批准”,我想从一个名为“新项目”的谷歌工作表选项卡复制并粘贴一行到另一个名为“项目选项卡”的谷歌工作表选项卡,然后清除复制的行。此外,我希望在创建复制和粘贴功能之前,标题为“项目选项卡”的选项卡上复制行的目标以“新项目”选项卡上的 G 列为条件。如果 G 列显示“4”或“5”,我想将该行复制并粘贴到名为“项目选项卡”的选项卡上的第 8 行,否则将该行复制并粘贴到名为“项目选项卡”的选项卡的第 60 行。所以总结一下:如果 H 列在“新项目”选项卡中显示“已批准”,请检查 G 列是否有“4”或“5”。如果它确实移动到名为“项目选项卡”的选项卡上的第 8 行,否则移动到第 60 行。下面是图片:
我已经单独创建在职的将行复制到“项目选项卡”选项卡后对行进行排序的功能。这些功能如下图所示:
下面的代码代表我目前拥有的。现在它正在复制“新项目”选项卡中的行并粘贴到第 8 行的“项目选项卡”选项卡中,而不管“新项目”选项卡上的 G 列是什么。这是我需要帮助的地方。如何创建一个代码,根据 G 列复制并粘贴到特定位置,但该函数直到 H 列中显示为“已批准”时才会运行?
function onEdit(event){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
newprojectstoProjecttab(ss,s,r);
}
function newprojectstoProjecttab(ss,s,r){
if(s.getName() == "New Projects" && r.getColumn() == 8 && r.getValue() == "Approved") {
var row = r.getRow();
var targetSheet = ss.getSheetByName("Project Tab");
var target = targetSheet.getRange(60,1,1);
var prioritytarget = targetSheet.getRange(8,1,1);
if(r.getColumn() == 7 && r.getValue() == "4" || "5") {
s.getRange(row, 1, 1, 7).copyTo(prioritytarget);
var clearRange = s.getRange(row,1,1,8);
clearRange.clearContent();
} else {
s.getRange(row, 1, 1, 7).copyTo(target);
var clearRange = s.getRange(row,1,1,8);
clearRange.clearContent();
}
}
}
任何帮助将非常感激!如果您需要更多信息,请告诉我!
【问题讨论】:
-
我必须为我糟糕的英语水平道歉。不幸的是,我无法理解你的问题。我可以问你问题的细节吗?
标签: if-statement google-apps-script google-sheets move nested-if