如何解决将数据从一个标签移动到另一个标签,然后将数据粘贴到最后一行,忽略公式
目标是,一旦我在选项卡1中选中一个复选框,它将把信息从第21到29行复制到选项卡2。在选项2中,它将找到第一行,其中A列具有空白值,并将信息粘贴到该行。 LastRow()无法工作,因为我在选项卡2的J-K列中有公式。我想我的IF语句格式或顺序错误。
function onEdit(event) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
var targetSheet = ss.getSheetByName("Tab 2");
var firstCell = targetSheet.getRange("A1");
if(!firstCell.isBlank()){
var firstEmptyRow = firstCell.getNextDataCell(SpreadsheetApp.Direction.DOWN).getRow() + 1;
} else{
var firstEmptyRow = firstCell.getRow();
}
if(s.getName() == "Tab 1" && r.getColumn() == 18 && r.getValue() == true) {
var row = r.getRow();
var numColumns = s.getLastColumn();
var target = targetSheet.getRange(firstCell);
s.getRange(row,21,1,numColumns).copyTo(target,{contentsOnly:true});
解决方法
您要在A列中找到第一个空白单元格
getNextDataCell()是一种有用的方法。
此方法查找沿指定方向包含数据的单元格与空单元格之间的边缘。
示例:
var firstCell = targetSheet.getRange("A1");
if(!firstCell.isBlank()){
var firstEmptyRow = firstCell.getNextDataCell(SpreadsheetApp.Direction.DOWN).getRow() + 1;
} else{
var firstEmptyRow = firstCell.getRow();
}
注意:
isBlank()本身也可以用于查找第一个空单元格,但是对于您而言,它可能不是最优雅的方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。