0

数人のユーザーが入力する Google フォームがあります。うまく機能しますが、制限があります。

アクティブなシートから入力されたデータを「work」という新しいシートにコピーしたいと思います。最初の行を除くすべての情報です。最初の行には、新しいデータがアクティブ シートに入力されると、いくつかのセルに値を入力するいくつかの配列数式があります。

2 番目のシート (作業) には、すべての書式設定、データ検証、いくつかの数式など (行 1) を含むヘッダー行があります。この情報は、フォームを介して新しいレコードが追加された場合には適用できません..そう言われました..

したがって、データがアクティブシート(アクティブと呼ばれる)からコピーされたら、新しいデータを「ワーク」シートの見出し行(行1)に従って、すべてのフォーマット、検証、数式などでフォーマットしたいと思います新しいデータに適用されます。

これは実行可能ですか?私はスクリプティングに関して初心者なので、完全な解決策をいただければ幸いです。

これは、 https://docs.google.com/spreadsheet/ccc?key=0AplugTacg-08dFNRUHROSW82bDhESkxBdjVTV0NOLUEで再生できるサンプル フォームです 。

最初に気付いたのは、配列数式が物事を盛り上げるため、コピー/貼り付けだけではできないため、特殊な貼り付けでなければならない-値のみ

どんな助けでも大歓迎です。

4

1 に答える 1

0

私はあなたがしていることの背後にある論理に少し苦労していますが、私はあなたのスプレッドシートのこのコピーのシート「work2」で解決策を試みました。おそらく、遊びをして、正しくないことや欠けていることを報告してください。

スクリプトは次のとおりです。

function onFormSubmit(e) {
  var sheet = SpreadsheetApp.getActive().getSheetByName('work2');
  var nextRow = sheet.getRange(sheet.getLastRow() + 1, 1, 1, 9); 
  sheet.getRange(2, 1, 1, 9).copyTo(nextRow);
  var sLength = e.values[2].length;
  var huuh = e.values[3] * sLength;
  var pending = e.values[3] * e.values[3] / huuh;
  var nextMonth = e.values[3] + pending;
  nextRow.setValues([[e.values[0], e.values[1], huuh, e.values[2], sLength, e.values[3], 'Please select action', pending, nextMonth]]);
}

「フォーム送信時」トリガーがアタッチされています。

于 2012-07-13T03:24:21.180 に答える