最後の列の整数を返します.getLastColumn()
方法あなたのシートは現在持っています。シートに10列がある場合、.getLastColumn()
は10を返します。
あなたが求めていたオプションはいくつかあります。最初に表示されるのは、シートの右端に新しい範囲を追加する場合です。変数を定義し、他のメソッド内で定義するのではなく、最も基本的な形式で呼び出すことも賢明です。この方法は、エラーを減らし、コードを明確にします。
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sourceRange = ss1.getRange(1, 1, 300, 22);
var sourceValues = sourceRange.getValues();
var ss3 = spreadsheet.getSheetByName("ss3");
var lastColumn = ss3.getLastColumn();
var archiveRange = ss3.getRange(1, lastColumn + 1, 300, 22); //Start at first row, the next column after the last one, for 300 rows and 22 columns.
archiveRange.setValues(sourceValues);
このコードでは、シートの右側に22列と300行が追加されます。あなたのシートは、あなたがこれを実行する時間に関係なく300の行にとどまりますが、あなたの列はさらに長く伸びます。
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sourceRange = ss1.getRange(1, 1, 300, 22);
var sourceValues = sourceRange.getValues();
var ss3 = spreadsheet.getSheetByName("ss3");
var lastColumn = ss3.getLastColumn();
var lastRow = ss3.getLastRow();
var archiveRange = ss3.getRange(lastRow + 1, 1, 300, 22); //Start at the next row after the last, the first column, for 300 rows and 22 columns.
archiveRange.setValues(sourceValues);
この意志:あなたは同じ22本のカラムを使用して、シートの下部に300行を追加するために探している場合
また、(長さ、ませ幅を広げる)、このコードを使用します幅22行を維持し、長さを300行延長します。あなただけの1アーカイブが存在するように、完全に以前のデータを上書きしようとしている場合は
、これを使用する:あなたが推測できるとおり
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sourceRange = ss1.getRange(1, 1, 300, 22);
var sourceValues = sourceRange.getValues();
var ss3 = spreadsheet.getSheetByName("ss3");
var archiveRange = ss3.getRange(1, 1, 300, 22);
archiveRange.setValues(sourceValues);
が、これは範囲300行、22列を保持します。データは上書きされ、長さや幅は追加されません。
GASがどれほど効果的で正確にテストできるかは、まだ存在しない可能性があります。.getRange()
行/列の追加時にエラーが表示される場合は、.insertColumnsAfter()
および.insertRowsAfter()
のようなメソッドをよく使用して、の値を新しい範囲に書き込むことになります。シート方法に関する文書はhereで見つけることができます。
ありがとうございました!私は最後のパラメータを "列数"ではなく "列数"として読み込んでいました。これで修正されました。 –