我的功能应该检查第8列的其中一种状态,尽管它似乎不起作用。
检查以确保它是"购买表",并检查"仪表板"上是否存在该购买,但它只应复制如果我在"第8列和第34页中编辑状态,则该行;以下之一"是"," no","重复"或"已售出"。
我哪里出错?
function copyRow() {
var purchasedColumn = 8; //- column A = 1, B = 2, etc...
var targetRange = targetDashboardSheet.getRange(targetDashboardSheet.getLastRow() + 1, 1);
if (purchaseSheet && range.getColumn() == purchasedColumn && ["Yes", "No", "Repeat", "Sold"].indexOf(range.getValue()) > -1 && taskDashboardRange === -1) {
sheet.getRange(range.getRow(), 1, 1, sheet.getLastColumn()).copyTo(targetRange);
}
}
我不相信这一点有效
range.getColumn() == purchasedColumn && ["Yes", "No", "Repeat", "Sold"].indexOf(range.getValue()) > -1
更新
我意识到我有一个单独的功能干扰了copyRow功能。所以我的代码实际上正在工作,然后被另一个crossUpdate函数覆盖。
感谢您的帮助,我们一直很感激。
答案 0 :(得分:1)
尝试此操作并在运行调试后查看日志。您应该看到一个行号列表以及该单元格与测试匹配的行的值。我只测试了是和否。我也将我的范围限制在你要检查的列中。您可以将其扩展到整行,以便设置为复制该行。
function copyRow() {
var targetDashboardSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
var purchasedColumn = 8; //- column A = 1, B = 2, etc...
var targetRange = targetDashboardSheet.getRange("H1:H");
var values = targetRange.getValues();
for (i in values) {
if (values[i][0] === "Yes" || values[i][0] === "No") {
Logger.log("row: " + i + " Value: " + values[i][0]);
}
}
}