我是腳本編程的初學者,目前正試圖在Google腳本上完成一個自動電子郵件發送系統,該系統根據Spreadsheet給出的號碼發送電子郵件指定發送日期)。谷歌腳本:電子表格中列和行的交叉匹配
通過引用電子表格中的數字(左邊的日期),我可以設法通過匹配列和指定的列的數字來指定列。 (在這種情況下是「7」)。
之後,我想從前面指定的列中獲取行或數據的數量,首先引用先前的列編號,並使用「for」查看列中的行以查找所需的數據。 (「1」這種情況下)
我會設法解決它,但它處理超慢... 我一直在尋找的同時已經解決,但無法弄清楚的方式。
因此,如果您與我分享解決方案的任何想法,我將非常感激。 我嘗試的腳本如下。
function AutoSend() {
// Get the spreadsheet
var book = SpreadsheetApp.getActiveSpreadsheet();
// Get cal
var Calsheet = book.getSheetByName("cal");
//=========================================================//
// Get data range that contains data
var CaldatRange = Calsheet.getDataRange();
//=========================================================//
// Get the row number of Cal to process
var CalnumRows = CaldatRange.getNumRows();
// Get the column number of Cal to process
var CalnumCols = CaldatRange.getNumColumns();
//=========================================================//
// Get the number of column to start to process
var Cstart = Calsheet.getRange(6, 5).getValue();
//=========================================================//
var coldata = [];
var rowdata = [];
for (var j = Cstart;j <= CalnumCols;j++){
var colnumfind = Calsheet.getRange(6, j).getColumn();
var status = Calsheet.getRange(3, j).getValue();
var dayLeft = Calsheet.getRange(4, j).getValue();
var Sdate = Calsheet.getRange(5, j).getValue();
if(dayLeft == "7" && status == "未送信")
{
Browser.msgBox("確認",colnumfind, Browser.Buttons.OK);
coldata = colnumfind;
for (var i = 6; i <= CalnumRows; i++)
{
var sendOK = Calsheet.getRange(i,coldata).getValue();
var rownumfind = Calsheet.getRange(i, coldata).getRow();
if(sendOK == "1")
{
rowdata = rownumfind;
var email = Calsheet.getRange(rowdata,3).getValue();
Browser.msgBox("確認","found it : Row " + rowdata +", Column "+ coldata + " " + email, Browser.Buttons.OK);
//PUT SEND EMAIL FUNCTION
}
}
Calsheet.getRange(3,coldata).setValue("送信済");
}
}
}
要清楚,您可以在C3中定義一個列。你想知道該列有多少行,並提取一些內容?在當前的設置中,您正在對getValue進行大量調用。你的最終目標是什麼?我覺得這可以更容易實現。 –
謝謝您的評論。 最終目標是使用gmail創建自動郵件。 我們打開頻繁的事件,因此決定使用Google表單收集應用程序並將它們存儲在電子表格中。 –
我們會自動發送電子郵件,提前7天提醒他們。 所以我遇到問題的編碼是基於剩餘多少天的這個提醒系統。 出於某種原因,我設法解決了我有的問題,現在它讀取第二個「for」,但處理這個簡單方法需要很長時間... 如何在此處發佈更新的腳本? –