这可能是因为克隆行后单元格的名称、ID或其他属性没有被正确地更新。要解决这个问题,可以使用以下代码示例:
function cloneRow(){
var sheet = SpreadsheetApp.getActiveSheet();
var rowNum = sheet.getActiveCell().getRowIndex();
var cloneNum = rowNum + 1;
var cloneRow = sheet.getRange(rowNum, 1, 1, sheet.getLastColumn()).getValues();
sheet.insertRowAfter(rowNum);
sheet.getRange(cloneNum, 1, 1, cloneRow[0].length).setValues(cloneRow);
}
function onEdit(e){
var sheet = SpreadsheetApp.getActiveSheet();
var editedCell = sheet.getActiveCell();
var editedRow = editedCell.getRow();
var changedRow = editedRow + 1;
if(changedRow <= sheet.getLastRow()){
var changedCell = sheet.getRange(changedRow, editedCell.getColumn());
editedCell.copyTo(changedCell);
}
}
这段代码中,函数cloneRow()
用于将选定的行(通过获取活动单元格、行号和活动工作表)克隆到其下一行。函数onEdit()
用于在单元格值更改时更新被更改行下的单元格(通过获取活动单元格、行号、列号和活动工作表)。这些函数一起修复了问题,并确保克隆单元格得到正确更新。