通过 importrange 导入数据时,将数据行存档到另一个选项卡(Google 张)
Archive data row to another tab while data is imported through importrange (Google Sheets)
我的脚本将“2019-2020”中的一行归档到 "Fully Invoiced" 选项卡。但是,该行不会从“2019-2020”选项卡中消失。我认为这是因为数据是通过 importrange
函数从另一个电子表格导入的。我希望这一行消失。
function onEdit(event) {
// target sheet of move to named Paid
// getColumn with check-boxes is currently set to column 2 or B
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
// Message box when archiving a project
var editedCell = event.range.getSheet().getActiveCell();
if((s.getName() == "2019-2020")&& r.getColumn() == 2 && r.getValue() == true) {
var response = Browser.msgBox('Make sure the project has been fully invoiced before archiving it. Are you sure to continue?', Browser.Buttons.YES_NO);
Logger.log(response);
if (response == "yes") {
Logger.log('The user clicked "Yes."');
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Fully Invoiced");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
} else {
Logger.log('The user clicked "No" or the dialog\'s close button.');
}
}
// Unarchive a project from Fully Invoiced tab to 2019-2020 tab
else if(s.getName() == "Fully Invoiced" && r.getColumn() == 2 && r.getValue() == false) {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("2019-2020");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
}
}
有人知道吗?
然后您需要从源文件中删除条目。 IMPORTRANGE()
将始终拉入您在仅查看模式下请求的范围,即您不能更改值。如果您想更改/删除值,则需要在源文件中执行此操作。
- 源文件=包含原始数据的文件
- 工作文件 = 使用 IMPORTRANGE 从源文件获取数据的文件
我的脚本将“2019-2020”中的一行归档到 "Fully Invoiced" 选项卡。但是,该行不会从“2019-2020”选项卡中消失。我认为这是因为数据是通过 importrange
函数从另一个电子表格导入的。我希望这一行消失。
function onEdit(event) {
// target sheet of move to named Paid
// getColumn with check-boxes is currently set to column 2 or B
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
// Message box when archiving a project
var editedCell = event.range.getSheet().getActiveCell();
if((s.getName() == "2019-2020")&& r.getColumn() == 2 && r.getValue() == true) {
var response = Browser.msgBox('Make sure the project has been fully invoiced before archiving it. Are you sure to continue?', Browser.Buttons.YES_NO);
Logger.log(response);
if (response == "yes") {
Logger.log('The user clicked "Yes."');
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Fully Invoiced");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
} else {
Logger.log('The user clicked "No" or the dialog\'s close button.');
}
}
// Unarchive a project from Fully Invoiced tab to 2019-2020 tab
else if(s.getName() == "Fully Invoiced" && r.getColumn() == 2 && r.getValue() == false) {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("2019-2020");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
}
}
有人知道吗?
然后您需要从源文件中删除条目。 IMPORTRANGE()
将始终拉入您在仅查看模式下请求的范围,即您不能更改值。如果您想更改/删除值,则需要在源文件中执行此操作。
- 源文件=包含原始数据的文件
- 工作文件 = 使用 IMPORTRANGE 从源文件获取数据的文件