我正在使用函数(AGR_PROD
)在Google Spreadsheets中添加一行,我需要计算使用AGR_PROD
函数的次数,以便以后可以删除添加这些代码的次数具有另一个功能(EraseInfo
)的行。因此,我有一个名为numrows
的变量作为计数器。
var numrows = 0;
function AGR_PROD() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('12:12').activate();
spreadsheet.getActiveSheet().insertRowsAfter(spreadsheet.getActiveRange().getLastRow(), 1);
spreadsheet.getActiveRange().offset(spreadsheet.getActiveRange().getNumRows(), 0, 1, spreadsheet.getActiveRange().getNumColumns()).activate();
spreadsheet.getRange('C13').activate();
spreadsheet.getRange('C12:D12').copyTo(spreadsheet.getActiveRange(),
SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
numrows = numrows +1;
Logger.log(numrows)
return numrows;
};
以下代码用于 erase 函数,因此,我试图将其传递给numrows
变量。
function EraseInfo(numrows) {
var sheet = SpreadsheetApp.getActive().getSheetByName('הצעת מחיר');
sheet.getRange('B2:B8').clearContent();
sheet.getRange('F1:F3').clearContent();
Logger.log(numrows)
sheet.deleteRows(501, numrows)
numrows = 0;
}
Logger
仅用于调试目的,但我得到一个找不到方法deleteRows(number,(class))。 (第20行,文件为“宏”)。
答案 0 :(得分:1)
由于您将numrows
声明为全局变量,因此无需将其传递给EraseInfo
函数。因此,无需将numrows
作为EraseInfo
的参数。
function EraseInfo() {
var sheet = SpreadsheetApp.getActive().getSheetByName('הצעת מחיר');
sheet.getRange('B2:B8').clearContent();
sheet.getRange('F1:F3').clearContent();
Logger.log(numrows)
sheet.deleteRows(501, numrows)
numrows = 0;
}
还可以检出:Global variables in Google Script (spreadsheet)
您可能希望使用Properties Service,因为您可以将它们用作一种持久性全局变量。