4 권의 Google 스프레드 시트 통합 문서가 있습니다. '주'시트에는 처음 11 개의 열에 자동으로 데이터가 덤프됩니다. 12 번째 열은 수동 이동 트리거로 설정되어 선택한 열 데이터를 행 기준으로 대상 시트 (다른 세 시트 중 하나)로 이동합니다. 예를 들어, 1, 4, 9 및 10 열과 같이 선택한 대상 시트로 원하는 열만 이동할 수 있습니다. 그러나 데이터가 이동하면 대상 시트에 채워지는 열입니다. 대신 대상 시트의 첫 번째 4 열로 데이터가 이동되기를 바랍니다. 나는 많은 포럼을 수색했으며 이것이 가능할 지 알 수 없다. 이것은 내 현재 스크립트입니다 : 내가 rangeToCopyTo 내가 생각할 수있는 모든 방법으로 조작 시도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);
}
}
,하지만 결과는 내가 무엇을 찾고 적이 없습니다. 선택한 열을 재정렬해도 가능하다는 것을 아는 사람이 있습니까? 그렇다면 나는 최소한 올바른 길을 가고 있습니까? 감사합니다.
– bobm
안녕 @ 벤, 이후 이 포럼에 게시 한 것은 이번이 처음입니다. 스프레드 시트를 볼 수 있는지 여부는 확실하지 않습니다. 가능한 경우 5x, 6x 및 할당 된 시트의 2 행에 원하는 결과를 표시했습니다. 각 시트의 행 3은 실제 결과를 보여줍니다. – bobm