2

ドキュメントによるとgetRangeByName(String)、クラス Spreadsheet で名前が付けられた関数がありますが、私には未定義のようです。

function onEdit(e) {
    if (e) {
        var ss = e.source.getActiveSheet();
        Logger.log(ss.getName);  
        Logger.log(ss.getRange);
        Logger.log(ss.getRangeByName);
    }   
}
// outputs:
//  function getName() {/* */}
//  function getRange() {/* */}
//  undefined

これは、公式ドキュメント (スクリーンショット) と矛盾するオブジェクトevent.source.getActiveSheet()以外の何かを返すためですか?Spreadsheet

ここに画像の説明を入力( https://developers.google.com/apps-script/understanding_events )

その場合、イベントのソースからアクティブ シートの名前で範囲を取得するにはどうすればよいですか? ありがとう。

4

1 に答える 1

2

var ss = e.source.getActiveSheet();変数ssをスプレッドシート型ではなくシート型にすることで、問題が発生します。メソッドgetRangeByName(name)はスプレッドシートに属します。

次のことを試してください。

function onEdit(e) {
    if (e) {
        var ss = e.source;
        var s = ss.getActiveSheet();
        Logger.log(s.getName);  
        Logger.log(s.getRange);
        Logger.log(ss.getRangeByName);
    }   
}
//  outputs:
//  function getName() {/* */}
//  function getRange() {/* */}
//  function getRangeByName() {/* */}
于 2013-10-20T23:08:15.017 に答える