【发布时间】:2020-04-20 16:18:28
【问题描述】:
Google 表格脚本编辑非常新,但我正在尝试在表格之间移动行。我已经使用 getLastRow 成功完成了这项工作,但是现在我正尝试根据特定列来完成这项工作。这样做的原因是信息所指向的工作表具有预设的数据验证字段和复选框,导致该行每次都转到第 1000 行。
我正在寻找当在当前工作表的下拉菜单中选择一个选项时,它会根据某一列找到第一个空闲行,并替换该行(除了预设字段外,它基本上是空的) .
目前我有如下:
function onEdit(event) {
// Move rows to different sheets based on action selected
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = SpreadsheetApp.getActiveSheet();
var range = SpreadsheetApp.getActiveRange();
if(range.getColumn() == 5 && range.getValue() == "Active") {
var row = range.getRow();
var numColumns = sheet.getLastColumn();
var targetSheet = spreadsheet.getSheetByName("Active");
var target = targetSheet.getRange(targetSheet.getLastRowSpecial(8) + 1, 1);
sheet.getRange(row, 1, 1, numColumns).moveTo(target);
sheet.deleteRow(row);
我在谷歌搜索时发现了以下示例和其他示例,但似乎没有任何效果:
function getLastRowSpecial(column){
// Get the last row with data for the whole sheet.
var numRows = targetSheet.getLastRow();
// Get all data for the given column
var data = targetSheet.getRange(1, column, numRows).getValues();
// Iterate backwards and find first non empty cell
for(var i = data.length - 1 ; i >= 0 ; i--){
if (data[i][0] != null && data[i][0] != ""){
return i + 1;
}
}
}
非常感谢任何帮助!
【问题讨论】:
-
没有这种方法:
targetSheet.getLastRowSpecial(8) -
欢迎。请关注tour,阅读How to Ask 和developers.google.com/apps-script/guides/sheets。附:
getLastRowSpecial不是 Class Sheet 的方法
标签: javascript google-apps-script google-sheets