1

私はこの Google Scripts についてまったくの初心者で、スクリプトをいじって、更新されるすべてのセルとどのユーザーによってコメント ボックスが表示されるかを調べてきました。

たとえば、列 A に URL のリストがあり、列 b、c、d、e、f にさまざまなタスクがあります。

タスクが完了したら、タスクを完了した人に、単純な「はい」(またはドロップダウン選択/チェックボックス) でシートを更新してもらいたいです。これが完了したら、その特定のセルを更新した日付とユーザーを示すコメントを作成/更新したいと思います。

私が現在使用しているスクリプトは次のようになります: -

function onEdit(e)

{ 
  // Get all information, Cell, Date, User

  var sheet = event.source.getActiveSheet();

  var cell = event.source.getActiveRange();

  var date = Utilities.formatDate(new Date(), "GMT", "dd-MM-yyyy");

  var user = Session.getActiveUser().getUserLoginId();

  //Write to Cell Comment

  cell.setComment(date + " User:" + user);

}

これには2つの問題があります: -

  1. これは私にとっては完全に機能しますが、シートを他の人と共有すると、コメント ボックスには更新日が表示されますが、ユーザーは表示されません。
  2. スクリプトによって更新されたセルに誰かが上書きしても、コメント bos は更新されず、これが表示されません。

ここであなたの助けをいただければ幸いです...

さらに情報が必要な場合はお知らせください。私を助けたいと思っている人には、事前に感謝します...

4

2 に答える 2

1

私は同じ関数を使用していますが、それは完全に機能しています(私は常にユーザー名を取得します)。スプレッドシートは匿名ユーザーが利用できるため、問題が発生する可能性があります。

誰かがセルを上書きした場合、コメントを更新するのが普通です。あなたができることは、前のコメントを取得して、それを新しいコメントと合計することです。これが私のコードです:

function onEdit(event)
{
  var r = event.source.getActiveRange();
  var comment = r.getComment().replace("Last modified by: ","previously modified by");
  r.setComment("Last modified by: " +Session.getActiveUser().getEmail()+" on: "+(new Date())+comment);
}
于 2013-03-21T12:53:16.087 に答える
1

修理済み!

getActiveUser の代わりに getEffectiveUser を表示するようにスクリプトを変更しました。

:-)

于 2013-03-22T15:22:11.340 に答える