簡體   English   中英

我想通過谷歌電子表格腳本從許多工作表中的一些工作表中更改單元格值

[英]I want change cell values from some sheet in many sheet by google spread sheet script

function UpdateCell()
{
  const NotationRange = "J1";
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheets = ss.getSheets();
  const year = 2020;
  sheets.forEach
  (
    (sheet) => 
    { const sheetName = sheet.getName();
       { sheet.getRange(NotationRange).setValue(year+'.'+sheetName);
       }
    }
  )
}

在谷歌電子表格腳本中

上面的代碼工作得很好而且很快,但是它改變了所有的工作表

工作表名稱有規則。 所以可以區分

我想要的是更改工作表名稱包含的特定工作表中的單元格值 [周]

在我的工作表名稱中是 [Reference],[01.01],[01.02],,,,[12.31],[week01],[week02],,,[week53]

所以我嘗試但失敗了..

function UpdateCell()
{
  const NotationRange = "B2:D5"
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheets = ss.getSheets();
  const year = 2020
  const checkDailyWord = ".";
  const checkWeekWord = "week";
  var DC = new RegExp('\\b' + checkDailyWord + '\\b');
  var WC = new RegExp('\\b' + checkWeekWord + '\\b');
  sheets.forEach
  (
    (sheet) => 
    { const sheetName = sheet.getName();
       if( DC.sheetName == 1 )
       { sheet.getRange(NotationRange).setValue(year+'.'+sheetName);
       }
       if( WC.sheetName == 1 )
       { sheet.getRange(NotationRange).setValue(year+'week'+sheetName);
       }
    }
  )
}

修改點:

  • new RegExp沒有sheetName的屬性。 Ref這樣,總是返回undefined的。 我認為這可能是您的問題的原因。
  • 在您的情況下,我認為includes可用於 if 語句。

當以上幾點反映到您的腳本時,它變成如下。

修改后的腳本:

function UpdateCell() {
  const NotationRange = "B2:D5"
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheets = ss.getSheets();
  const year = 2020
  const checkDailyWord = ".";
  const checkWeekWord = "week";
  sheets.forEach(sheet => {
    const sheetName = sheet.getName();
    if (sheetName.includes(checkDailyWord) && !sheetName.includes(checkWeekWord)) {
      sheet.getRange(NotationRange).setValue(year+'.'+sheetName);
    } else if (!sheetName.includes(checkDailyWord) && sheetName.includes(checkWeekWord)) {
      sheet.getRange(NotationRange).setValue(year+'week'+sheetName);
    }
  });
}
  • 運行此修改后的腳本時,在示例表名稱01.01,01.02,12.31week01,week02,week53中運行sheet.getRange(NotationRange).setValue(year+'.'+sheetName)sheet.getRange(NotationRange).setValue(year+'week'+sheetName) ,分別。

筆記:

  • 在此修改后的腳本中,根據您的示例工作表名稱,它假定具有工作表名稱的工作表同時包含week. 不使用。

參考:

暫無
暫無

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

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