0

我正在AGR_PROD使用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;
};

以下代码用于擦除功能,因此我试图将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 行,文件“宏”)

4

1 回答 1

1

由于您声明numrows为全局变量,因此无需将其传递给EraseInfo函数。所以不需要包含numrowsEraseInfo.

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;
}

另请查看:Google 脚本中的全局变量(电子表格)

您可能希望使用Properties Service,因为您可以将它们用作一种持久的全局变量。

于 2018-08-11T16:30:47.163 回答