0

データを追跡できるGoogleドキュメントでスプレッドシートを作成しています。私はすでにいくつかの開始値をセルに入力しており、いくつかのセルには関数があります。以前のレコードがあるリストにこれらの値を追加するスクリプトを作成したかったのです。

それをより明確に説明するため。

値のあるテーブルがあります:

[A1] [B1][C1][D1]など。

[24.52] [12.84] [= A1-B1] [=(100 / A1)*B1]など。

ボタンを押した後、これらの値を別のシート(推奨)のリストに追加するか、同じシートの既存のすべてのすぐ下に追加します。メインテーブルを編集した後、リスト内のこれらの値は変更されないはずです。

リストは次のようになります。

[.....] [.....] [.....] [......]<---[...]以前の値が追加された場所です

[24.52] [12.84] [11.68] [52.36%]<---最後に追加された値

新しいデータが新しい行に追加されます。

スクリプトがありますが、セルに値を追加する際に問題があります。そのボタンを押すと、#NAMEが追加されますか?コメント「不明な範囲名A16」のあるセルでは、実際の値ではありません。

私はこのスクリプトを使用します-これは同じシートに新しい値を追加するだけです:

function AddRecord() {

  var doc = SpreadsheetApp.getActiveSpreadsheet();
  var lastRow = doc.getLastRow();
  var cell = doc.getRange('A1').offset(lastRow, 0);
  cell.setValue('=A16');
  cell.offset(0, 1).setValue('=B16');
  cell.offset(0, 2).setValue('=C16');
  cell.offset(0, 3).setValue('=D16');
}

= A16、= B16、= C16、= D16は必要な値を含むセルですが、正しく追加されるようにこのコードをどのように記述すればよいですか?

4

1 に答える 1

2

あなたの質問を完全に理解したかどうかはわかりません。最後の行の値を "Tabellenblatt1" から "Tabellenblatt2" の新しい行にコピーするには、次の単純な関数を使用できます。

function myFunction() {
  var doc = SpreadsheetApp.getActiveSpreadsheet();
  var sheetFrom = doc.getSheetByName("Tabellenblatt1");
  var sheetTo = doc.getSheetByName("Tabellenblatt2");  
  var lastRow = sheetFrom.getLastRow();
  var cell = sheetFrom.getRange('A1').offset(lastRow, 0);
  var rowTo = sheetTo.getLastRow() + 1;
  for( var i = 1; i < 5; i++) {
     sheetTo.getRange(rowTo, i).setValue( sheetFrom.getRange(lastRow, i).getValue());
  }
}
于 2012-06-17T14:26:52.857 に答える