0

我有一個腳本,我試圖在Google文檔中的所有工作表上運行腳本,但不知道如何完成該工作。 IT適用於一張紙,但我有大量的紙張都需要檢查相同的格式。謝謝。需要幫助在腳本編輯器中創建For循環以在Google電子表格中的所有工作表上創建腳本運行代碼

下面是我嘗試應用於所有工作表的腳本。

function sendEmail(email_address, email_subject, email_message) { 
    MailApp.sendEmail(email_address, email_subject, email_message); 
} 


function timestamp() { 
return new Date() 
} 

var EMAIL_SENT = "EMAIL_SENT"; 


function test_sendEmail() { 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var cell = sheet.setActiveCell('A2'); 
    var criterion_cutoff = 5; 
    var i = 0; 
    var startRow = 2; 
    var addr; 
    var subj; 
    var msg; 
    var timecheck 
    do { 
    addr = cell.offset(i,0).getValue(); 
    subj = cell.offset(i,1).getValue(); 
    msg = cell.offset(i,2).getValue(); 
    criterion = cell.offset(i,3).getValue(); 
    timecheck = cell.offset(i,11).getValue(); 
    if (timecheck > 0) { 
     if(criterion < criterion_cutoff) { 
     sendEmail(addr,subj,msg); 
     Browser.msgBox('Sending email to: ' + addr); 
     }} 
    i++; 
    } while(cell.offset(i, 0).getValue().length > 0) 
    sheet.getRange(2, 5).setValue(timestamp()); 
    Browser.msgBox('Done!'); 
} 

回答

0

您可以使用您希望通過進行以下修改腳本應用到一組ID:
1.更改

function test_sendEmail() { 
    var sheet = SpreadsheetApp.getActiveSheet(); 

到:

function test_sendEmail(sheetID) { 
    var sheet = SpreadsheetApp.openById(sheetID); 

2 。定義要更改的工作表ID:

var idArray = [Spreadsheet1_id, Spreadsheet2_id, ...]; 

3。通過陣列

for(var k in idArray) test_sendEmail(idArray[i]); 

的所有元素創建一個循環,將循環如果不想手動填充idArray,你可以創建一個能夠把所有的電子表格中的ID谷歌雲端硬盤中的功能。如果這是你想要的,然後使用下面的代碼,而不是我在第2點提供的代碼行。

var sprArr = DocsList.getFilesByType("spreadsheet"); 
var idArray; 
for(var k in sprArr) idArray.push(sprArr[i].getId()); 
+0

你介意插入註釋嗎?我無法正常工作 – user1524302 2012-07-23 06:30:29

+0

「插入註釋」是什麼意思? – 2012-07-23 09:29:29

+0

只需解釋每個更改的具體內容。 因此,步驟1中的第一項更改意味着需要將我的工作表的唯一工作表ID插入到步驟中。它將分配可變表單,使其等於由id標識的特定表單。我假設這是正確的。抱歉要問握手,但我想知道發生了什麼。謝謝 – user1524302 2012-07-23 16:51:33

相關問題