修改要点:
-
在您的脚本中,
for (let i = 0 ; i < n; i++)
就在的线下使用
for(设i=0;i<n;i++)
。这样,循环就不能正常工作。请小心。
-
getValue
在循环中使用。在这种情况下,处理成本将变得很高。
当这些点反映在你的脚本中时,下面的修改如何?
修改的脚本:
function replaceText() {
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
const sheetIDList = spreadsheet.getSheetByName('DOC ID');
const colId = 3;
const firstRowID = 2;
const lastRowId = 17;
const n = lastRowId - firstRowID;
let startRow = firstRowID // Baris awal data DOC ID
// I modified the below script.
var values = sheetIDList.getRange(startRow, colId, n).getDisplayValues();
values.forEach(([docId]) => {
if (!docId) return;
var doc = DocumentApp.openById(docId);
var body = doc.getBody();
body.replaceText("Kepala SMK Negeri 7 Semarang", "Kepala SMA Negeri 13 Semarang");
body.replaceText("SMK Negeri 7 Semarang", "SMA Negeri 13 Semarang");
body.replaceText("Haris Wahyudi, S.Pd. M.Pd", "Rusmiyanto, S.Pd., M.Pd.");
body.replaceText("19751222 200003 1 002", "19690812 199803 1 013");
body.replaceText("Pembina Tk. I", "Pembina");
});
}
-
运行此脚本时,将从“C2:C16”中检索文档ID。而且,你的
replaceText
运行到每个文档。
注:
-
在这种情况下,当文档ID是无效ID时,会发生错误。请小心。
参考文献: