問題:
我有 2 張相同的作業表,想將第一張作業表中的所有非空行復制到第二張作業表。這個復制程序應該從第一張紙的 A 列的第 2 行開始。換句話說,我不想在副本中包含標題/標題。
嘗試的解決方案:
下面的腳本復制整個第一張紙(包括標題/標題),而不是從第 2 行開始復制。我很確定我遺漏了一些東西并且無法找到它,因為我還在學習如何處理 Apps 腳本。
問題:
有人可以更正下面的代碼,以便它只能將第一張作業表中的非空行復制到第二張作業表,而沒有標題/標題嗎?
非常感謝你。
function copyAndAddNewEntries() {
var sourceSheet = SpreadsheetApp.openById('SOURCE_SHEET_ID').getSheetByName('SOURCE_SHEET_NAME')
var sourceSheetrange = sourceSheet.getDataRange();
var sourceSheetData = sourceSheetrange.getValues();
var targetSheet = SpreadsheetApp.openById('TARGET_SHEET_ID').getSheetByName('TARGET_SHEET_NAME');
targetSheet.getRange(targetSheet.getLastRow() 1, 1, sourceSheetrange.getHeight(), sourceSheetrange.getWidth()).setValues(sourceSheetData);
}
uj5u.com熱心網友回復:
我相信你的目標如下。
- 您想從源作業表中復制所有空列都不為空的行,并希望將值放到目標作業表中。
- 您想從源值中洗掉標題行。
在這種情況下,如何進行以下修改?
修改后的腳本:
function copyAndAddNewEntries() {
var sourceSheet = SpreadsheetApp.openById('SOURCE_SHEET_ID').getSheetByName('SOURCE_SHEET_NAME');
var sourceSheetrange = sourceSheet.getDataRange();
var [, ...sourceSheetData] = sourceSheetrange.getValues();
sourceSheetData = sourceSheetData.filter(e => e.join("") != "");
var targetSheet = SpreadsheetApp.openById('TARGET_SHEET_ID').getSheetByName('TARGET_SHEET_NAME');
targetSheet.getRange(targetSheet.getLastRow() 1, 1, sourceSheetData.length, sourceSheetData[0].length).setValues(sourceSheetData);
}
參考:
- 篩選()
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/332748.html
標籤:谷歌应用程序脚本
