簡體   English   中英

批量刪除數據 - Google 表格

[英]Deleting Data In Bulk - Google sheets

我找到了這段代碼,需要對其進行修改,以便如果找不到結果,它將返回並繼續運行下一行代碼

function DeleteTEXT_BULK() {
 // will delete in bulk whatever the text finder finds. tested and working
 // YOU MUST ENABLE THE SHEETS API - RESOURCES / ADVANCED GOOGLE SERVICES / GOOGLE SHEETS API
 // cannot delete blank rows

const sheetName = "Sheet 1"; // Please set the sheet name.
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName(sheetName);
const sheetId = sheet.getSheetId();
const requests = sheet
.getRange(`A1:E${sheet.getLastRow()}`)
.createTextFinder("^JOHN")
.matchCase(true)
.useRegularExpression(true)
.findAll()
.map(r => r.getRow())
.reverse()
.map(r => ({delete Dimension:{range:{sheetId:sheetId,startIndex:r - 
1,endIndex:r,dimension:"ROWS"}}}));
Sheets.Spreadsheets.batchUpdate({requests: requests}, ss.getId());
}

因此,如果它沒有找到“JOHN”,它當前會停止運行並引發錯誤。

如果沒有找到結果,我希望它移動到下一段代碼。

感謝任何幫助,這是我的第一篇文章

我相信你的目標如下。

  • 即使沒有找到JOHN的值,您也希望繼續運行腳本。

在這種情況下,如何進行以下修改?

修改后的腳本:

function DeleteTEXT_BULK() {
  const sheetName = "Sheet 1"; // Please set the sheet name.
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName(sheetName);
  const sheetId = sheet.getSheetId();
  const ranges = sheet
    .getRange(`A1:E${sheet.getLastRow()}`)
    .createTextFinder("^JOHN")
    .matchCase(true)
    .useRegularExpression(true)
    .findAll();
  if (ranges.length > 0) {
    const requests = ranges.map(r => r.getRow())
      .reverse()
      .map(r => ({ deleteDimension: { range: { sheetId: sheetId, startIndex: r - 1, endIndex: r, dimension: "ROWS" } } }));
    Sheets.Spreadsheets.batchUpdate({ requests: requests }, ss.getId());
  }

  // do something.

}
  • 在此修改中,當沒有找到JOHN的值時,通過if (ranges.length > 0) {}跳過Sheets.Spreadsheets.batchUpdate的腳本。 這樣,您可以繼續運行腳本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM