0

オンラインで見つけたこのコードがあり、必要に応じて機能しますが、呼び出したい場合は、すべてのシートまたは下部のタブで機能します。動作させたい

function onEdit(event) 
{
    var sheet = event.source.getActiveSheet();
    var eventRange = event.source.getActiveRange();
    var eventColumn = eventRange.getLastColumn();

    if (eventColumn == 1) 
    {
      var stampRange = eventRange.offset(0,10);
      stampRange.setValue(new Date());

    }
} 

これは元のコードです。次の 4 行目を追加しようとしましたが、動作しません。私は JavaScript の経験がありませんが、最善を尽くしているので、あなたの助けが必要です。ありがとうございました。

if(sheet.match(/*.13/)){

これは私が追加した行です。オンラインで読んだところによると、スクリプトはシート名が 13 で終わる場合にのみ機能するはずですが、機能していません。

4

1 に答える 1

0

あなたは正しい考えを持っていますsheetが、シートオブジェクトで.match()あり、文字列メソッドです。メソッドを使用してSheet.getSheetName()、シートの名前 (タブ上の単語) を取得します。

では、onEdit()通常、多くの処理時間を費やすことなく救済したいので、できるだけ早くシート名のテストを行う必要があります。

正確に一致させたい場合は"Sheet13"、それをテストする必要があります。たとえば、正規表現は「Apollo13」と「a13a」にも一致するためです。

function onEdit(event) 
{
    var sheetName = event.source.getActiveSheet().getSheetName();

    if (sheetName.match(/.13/) == null)
      // These aren't the droids you're looking for...
      return;

    var eventRange = event.source.getActiveRange();
    var eventColumn = eventRange.getLastColumn();

    if (eventColumn == 1) 
    {
      var stampRange = eventRange.offset(0,10);
      stampRange.setValue(new Date());

    }
} 
于 2013-06-15T01:48:37.777 に答える