2016-11-10 63 views
-5

任何人都可以請幫我理解這個簡單功能有什麼問題嗎?「.replace」有什麼問題?

function generateSKU(inputField) { 
    return inputField.replace(" ","."); 
} 

TypeError:無法調用未定義的方法「替換」。

我甚至嘗試 inputField.Value.replace()..這產生了同樣的錯誤.. 此外inputField.toString.replace()..也給我確切的同樣的錯誤..

不管我做了什麼,我不能在這個上應用任何字符串函數。我的腳本中沒有別的。只有這個功能。它是我的第一個劇本。

此外,如果我只返回inputField,它會返回正常並替換該值。

我使用的函數調用它在細胞內就像

=generateSKU(A1) 

這樣。

如果有人可以幫助,我會非常感激。

+1

你確定你傳遞一個字符串值到'generateSKU()'? – peteb

+0

你如何調用相關函數? –

+0

@Rubén我寫過一個問題,我在單元格內調用它。 –

回答

3

該函數在沒有參數的情況下被調用(或者被傳遞的東西被解析爲undefinednull)。空單元也許?如果你不控制調用,你需要保護它:

function generateSKU(inputField) { 
    if (inputField) { 
     return inputField.replace(" ","."); 
    } 
} 
+0

我通過寫入代替我們寫公式的位置來調用函數。 –

+0

你看,問題是如果我簡單'返回'inputField,目標字段確實從主字段獲得「TEXT」。如果我鍵入typeof(inputField),我會得到'string',但只要我調用replace,它就不起作用。 –

+0

問題出在加載的頁面上。當我發佈這個問題時發生錯誤,而且沒有我第二天早上觸摸它的工作原理。謝謝大家的幫助。 –