这个脚本的目的是复制我高亮显示/选择的多行的列值,并粘贴到另一个GoogleSheet。然而,目标电子表格的B列和c列已经包含公式,我希望代码忽略它并获取A列的最后一行,有没有办法做到这一点,它不会改变b列和c列的值/公式?先谢谢你了
function copySelectedRows() {
var sourceSpreadsheetId = "SOURCE_SPREADSHEET_ID";
var targetSpreadsheetId = "TARGET_SPREADSHEET_ID";
var sourceSheetName = "SourceSheetName";
var targetSheetName = "TargetSheetName"
var sourceSpreadsheet = SpreadsheetApp.openById(sourceSpreadsheetId);
var sourceSheet = sourceSpreadsheet.getSheetByName(sourceSheetName);
var targetSpreadsheet = SpreadsheetApp.openById(targetSpreadsheetId);
var targetSheet = targetSpreadsheet.getSheetByName(targetSheetName);
var selection = sourceSheet.getSelection();
var selectedRanges = selection.getActiveRangeList().getRanges();
var targetData = [];
selectedRanges.forEach(function (range) {
var startRow = range.getRow();
var numRows = range.getNumRows();
var sourceRange = sourceSheet.getRange(startRow, 2, numRows, 4); // Assuming column B is index 2, column C is index 3, and column D is index 4
var sourceValues = sourceRange.getValues();
sourceValues.forEach(function (row) {
targetData.push([row[0], "", "", row[1], row[2], row[3]]); // Copying values from column B, C, D to E, A, and F respectively
});
});
var targetRange = targetSheet.getRange(targetSheet.getLastRow() + 1, 1, targetData.length, targetData[0].length); // Starting from column A (1)
targetRange.setValues(targetData);
}
1条答案
按热度按时间83qze16e1#
在你的脚本中,下面的修改怎么样?在这种情况下,我猜测当使用Sheets API时,脚本可能很简单。因此,在此修改中,使用Sheets API。
在测试此脚本之前,请在高级Google服务中启用Sheets API。
请按如下方式修改您的脚本。
发件人:
收件人:
注意:
var sourceSpreadsheet = SpreadsheetApp.openById(sourceSpreadsheetId);
可能是var sourceSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
。参考资料: