1

我一直在谷歌腳本的工作,但我似乎無法找到解決我的問題。我想要做的是將電子表格中兩個單元格的內容與我的功能calculateRates()一起乘。這裏是我的代碼:谷歌腳本返回不是數字

/** 
@customFunction 
*/ 
function calculateRates(hourDecimal, personRate) { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); //Access spreadsheet 
    var sheet = ss.getSheets()[0]; //Access sheet 

    var range = sheet.getDataRange(); //Access all cells 

    var values = range.getValues(); //Call to get value of certain cell 

    var totalEarned = hourDecimal * personRate; 
    Logger.log(totalEarned); 

    return totalEarned; 
} 

它的問題是,經過我指定兩個單元爲電子表格的函數的參數一起繁衍,有讀取錯誤「結果不是一個數字。」我知道我的電子表格中有正確的功能,所以不能成爲問題.....任何想法?謝謝你的幫助!

+0

您是否正在從Spreadsheet UI調用該函數?在你輸入'= calculateRates(B1,C1)'的單元格中的例子?另外,你只是將你設置的單元格乘以參數,你真的不使用函數的前4行,或者有更多的代碼?最後,這些值是手動輸入還是作爲某些功能的結果? – ocordova

+0

是的,我從電子表格中調用函數。有更多的代碼,但在一個單獨的功能正在工作,但這個功能,我遇到了麻煩。對不起,我是初學者,所以我不知道是否必須回憶所有我認爲的電子表格對象。至於這些值,一個值是手動輸入,另一個值是作爲函數的結果。 – jgnibo

回答

3

當您嘗試使用不是全部數字的值執行計算時發生此錯誤,例如數字和字符串。

谷歌表格存儲數據取決於單元格的值,該值可以是Number類型,BooleanDate的,或String(空單元將返回一個空字符串)。當這些值被Custom Functions使用時,Apps腳本將它們視爲JavaScript中的適當數據類型。

您需要確保單元格的值是數字,考慮到如果單元格包含一些空格或其他非數字字符,如"2 2""3/2",它將被視爲字符串,您將需要修剪或在任何計算之前提取這些特殊字符。

+0

似乎現在正在工作.....將單元格的內容轉換爲浮動,並且做了訣竅。謝謝! – jgnibo