私は4枚のGoogleスプレッドシートを持っています。 「メイン」シートには、データが最初の11列に自動的にダンプされます。第12列は手動移動トリガとして設定され、選択された列データを行ごとに対象シート(他の3枚のシートの1つ)に移動します。私は、選択したターゲットシートに必要な列、たとえば列1,4,9および10を移動できます。ただし、これらはデータが移動するときにターゲットシートに配置される列です。代わりに、データをターゲットシートの最初の4列に移動します。私は数多くのフォーラムを検索しましたが、これが可能かどうかはわかりません。これは私の現在のスクリプトです:Googleスクリプトは行を別のスプレッドシートに移動します。列の並べ替え
function onEdit() {
// base definitions
var ss = SpreadsheetApp.getActiveSpreadsheet();
var editedSheet = ss.getActiveSheet();
var editedCell = editedSheet.getActiveCell();
var wordInCell = editedCell.getValue().toString();
var moveSheet = "Main";
var moveColumn = 12;
var moveWords = ["move5x", "move6x", "moveas"];
var targetSheets = ["5x", "6x", "Assigned"];
// if the edit was mot in the moveSheet jump out
var sheetIndex = moveSheet.indexOf(editedSheet.getName());
if (sheetIndex == -1) return;
// if the edit was mot in the move column jump out
if (editedCell.getColumn() != moveColumn) return;
// if the value in editedCell isn't one of the move words, jump out
var moveWordsIndex = moveWords.indexOf(wordInCell);
if (moveWordsIndex == -1) return;
// if the value in editedCell is one of the move words, set up columnsToMove
var columnsToMove;
if (moveWordsIndex == 0 || moveWordsIndex == 1) {columnsToMove = [[1, 4], [8, 8]]};
if (moveWordsIndex == 2) {columnsToMove = [[1, 1], [4, 4], [9, 10]]};
// copy data from editedSheet's sourceRow to targetSheet's targetRow
var sourceRow = editedCell.getRow();
var targetSheet = ss.getSheetByName(targetSheets[moveWordsIndex]);
var targetRow = targetSheet.getLastRow();
targetSheet.insertRowAfter(targetRow++);
for (var i = 0; i < columnsToMove.length; i++) {
var startColumn = columnsToMove[i][0];
var numColumns = columnsToMove[i][1] - startColumn + 1;
var numCopiedColumns = columnsToMove.length;
var rangeToCopyFrom = editedSheet.getRange(sourceRow, startColumn, 1, numColumns);
var rangeToCopyTo = targetSheet.getRange(targetRow, startColumn, 1, numColumns);
rangeToCopyFrom.copyTo(rangeToCopyTo);
}
}
私が思いつく限りの方法をrangeToCopyTo操作しようとしたが、結果は私が探しているものをされることはありません。 選択した列の並べ替えが可能であるかどうかは知りませんか?そうであれば、私は少なくともそれをする正しい道を歩いていますか? ありがとう
こんにちは@ben、以来私はこのフォーラムに初めて投稿しました。あなたがスプレッドシートを見ることができるかどうかわかりません。可能であれば、シートの行2に希望の結果を表示しました:5x、6x、および割り当て済み。各シートの行3は実際の結果を示しています。 – bobm