跟踪功能使用了多少次

时间:2018-08-11 16:21:39

标签: google-apps-script google-sheets google-sheets-macros

我正在使用函数(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行,文件为“宏”)

1 个答案:

答案 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,因为您可以将它们用作一种持久性全局变量。