簡體   English   中英

傳遞動態范圍:Google腳本

[英]Passing Dynamic Range:Google Script

我正在嘗試編寫一個自定義函數,該函數將計算並返回包含單數列信息的單元格數。 我正在使用A(x):Z(x)的范圍,但似乎無法動態傳遞這些范圍,因此每次都能獲得用戶定義的范圍。

編輯:當前錯誤我現在收到的消息是:參數列表后缺少)。 (第10行,文件“更新數量”)

到目前為止,我有這個。

function updateNum(row1,col1,row2,col2)
{
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var s = ss.getSheetByName("report status");
 var r = s.getActiveRange(row1+col1:row2+col2); <---Line with error
 return (range.length-2)/2
}

關於如何使它通過范圍的任何建議?

謝謝,亞歷山大

將行更改為:

var r= s.getRange(row1, col1, row2-row1+1, col2-col1+1); 

但這不能解決您的問題,因為后面的線是沒有意義的。 未聲明“范圍”。 我看不到您要去的確切位置。 請寫一些偽代碼。

如果要計數包含信息的單元格的數量,請使用電子表格本機函數

counta()

使用自定義函數是不可能的,因為它們是確定性的。 也就是說,給定相同的輸入,它們將返回相同的結果。 就您而言,即使您修復了這些錯誤,您仍然沒有通過實際輸入,只是其范圍限制。 因此,如果范圍內的數據發生更改,您仍將通過相同的輸入限制,因此將返回先前的緩存結果。 有一些方法可以傳遞一個額外的參數,該參數總是像'now()'那樣變化,但是由於會不斷地重新計算而導致性能問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM