0

更新:これは簡単な修正でした。入力していた数値の列を選択し、[書式] -> [数値] -> [プレーン テキスト] に移動すると、突然機能が機能しました! Format -> Number -> Normal などに変更すると、エラーが発生しました。


9 未満の文字列の先頭にゼロを追加するメソッドがあります。4 行目searchのように、関数が未定義であるというエラーが表示されます。この問題の原因は何ですか? issn.search具体的には、Google Apps Script のエラーはTypeError: Cannot call method "search" of undefined. (line 5)

function fixissn(issn){
    //Logger.log("Old issn is " + issn);
    //if there's a dash in the ISSN, it need 9 characters instead of 8
    if (issn.search("-") > -1) {
        var mis = 9; 
    } else if (issn.search("-") == -1) {
        var mis = 8; 
    }

    //if the ISSN is less than 9 or 8 (mis), add zeros to the beginning
    while (issn.length < mis && issn.length > 0) {
        //zero added to beginning of ISSN
        issn = 0 + issn
    }
    //Logger.log("fixed to new issn " + issn);
    return issn;
}
4

1 に答える 1

0

@epascarelloが述べたことをエコーするだけで、値が渡されていないように見えます。言うのは難しいですが、一部が空のセルの範囲でこの関数を使用していることが原因である可能性があります。その問題を回避するには、次のようなことを試してください。

function fixissn(issn){
    if (issn !== undefined) {
        //Logger.log("Old issn is " + issn);
        //if there's a dash in the ISSN, it need 9 characters instead of 8
        if (issn.search("-") > -1) {
            var mis = 9; 
        } else if (issn.search("-") == -1) {
            var mis = 8; 
        }

        //if the ISSN is less than 9 or 8 (mis), add zeros to the beginning
        while (issn.length < mis && issn.length > 0) {
            //zero added to beginning of ISSN
            issn = 0 + issn
        }
        //Logger.log("fixed to new issn " + issn);
    }
    return issn;
}
于 2012-12-13T22:44:56.440 に答える