2

onEdit スクリプトを機能させるのに最も苦労しています。私の仕事には、電話を追跡するために使用する電話ログシートがあります (日付、時間、割り当てられた技術など)。技術別の電話と呼ばれるピボット テーブル レポートとして設定された別のシートがあります。このシートは、技術者ごとに 1 日あたりの通話数を自動的にカウントすることになっています。それは機能しますが、問題は、Phone Log シートの Assigned Tech 列のセルに余分な空白が追加されるたびに、Tech シートによる電話での通話がまったく別の人として扱われるため、4 つの異なる"ボブスなど

Assigned Tech 列の各セルの空白を削除することで、これをクリーンアップするスクリプトを既に正常に作成しました。これを onEdit スクリプトに変換して、ライブで同じことを達成しようとしています。

function onEdit(e) 
{ 
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sh = ss.getActiveSheet();
  var r = ss.getActiveRange();
}

function myOnEdit() 
{
  function replacer( str, p1, p2, offset, s ) {
    return p1 
      }

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var cell = ss.getActiveCell().getA1Notation();
  var tsheet = "Phone Log";
  var sname = ss.getName();

  if (sname = tsheet) //Are we in the Phone Log sheet?
  {

    var r = ss.getActiveRange();
    var column = r.getColumn();

    if (column == 4) //Are we editing a cell in the "Assigned Tech" column?
    {

      var value = cell.getValue();
      if ( value == String )
      {
        value = value.replace( /^\s*(.*?)\s*$/gm , replacer );
        cell.setValue( value) ;
      } 
    }
  }

}

したがって、基本的には、編集中のセル値、つまり「ボブ」を取得し、空白を削除して、入力された値を編集された値「ボブ」に置き換えようとしています。上記のスクリプトをスクリプト エディターで実行してもエラーは発生しませんが、機能しません。onEdit トリガーとして onMyEdit() をインストールしました。

何かご意見は?

4

1 に答える 1