スプレッドシート スクリプト エディタ内で、1800 行のプロジェクトを 12 個の「ファイル」に分割しました。検索機能はアクティブなファイル内のみを検索することに気付きました。
とにかくグローバル検索を行うことはありますか?
また、プロジェクト内のファイルに関連して、エラーがスローされると、ファイル名ではなく行番号が参照されます。
エラーの原因となった行を含むファイルを特定する方法はありますか?
ありがとうダン
スプレッドシート スクリプト エディタ内で、1800 行のプロジェクトを 12 個の「ファイル」に分割しました。検索機能はアクティブなファイル内のみを検索することに気付きました。
とにかくグローバル検索を行うことはありますか?
また、プロジェクト内のファイルに関連して、エラーがスローされると、ファイル名ではなく行番号が参照されます。
エラーの原因となった行を含むファイルを特定する方法はありますか?
ありがとうダン
エラーの原因となったファイルを特定するには、エラーをキャッチしてスタックトレースを解析する必要があります。これが私がすることです:
function yourCallingfunction() {
try {
//do your thing
} catch(err) {
stack = parseErr_(err)
Logger.log(stack);
throw stack;
}
}
//Try to parse errors stacktrace into a nicer format
function parseErr_(e) {
var ret;
if( e !== undefined && e !== null && e.stack ) {
ret = e.name +': '+e.message+' \nStacktrace: \n';
var stack = e.stack.replace(/\n/g,'').match(/:\d+( \([^\)]+\))?/g);
for( var i in stack )
ret += stack[i].replace(/[\(\):]/g,'').split(/ /).reverse().join(':') + ' \n';
} else
ret = e;
return ret;
}
グローバル検索について、問題が検索のみであり、置換ではない場合は、回避策もあります。これを見てください:
function showMe() {
for( var i in this )
Logger.log(this[i].toString());
}
しかし、これは実際の解決策ではありません。@ScampMichaelによってリンクされている問題にスターを付ける必要があります
グローバル検索を行う方法はありません。検索は、現在のファイルのみを検索します。私は、プロジェクト全体を横断する検索と置換が必要であることに同意し、2011 年 9 月に次のイシュー トラッカーに提出して発行しました。
http://code.google.com/p/google-apps-script-issues/issues/detail?id=822
そこにアクセスしてスターを付けて投票し、この問題に関する進捗状況の通知を受けてください。
エラー メッセージとともにファイル名が報告されないという問題は、次のイシュー トラッカーでも取り上げられています。
http://code.google.com/p/google-apps-script-issues/issues/detail?id=747