이것은 Google 내 서적의 스크립팅에 대한 첫 번째 게시물입니다. 어떤 도움이라도 대단히 감사합니다.Google 스프레드 시트 - 시트 1에서 시트 2로 행을 복사하고 일치하는 열 값으로 시트 2의 행에 셀 값을 붙여 넣기해야합니다.
제목에 언급 된대로 제출 된 Google 양식의 데이터를 처리하는 데 사용하는 두 개의 시트가있는 Google 스프레드 시트를 작성하고 있습니다. sheet1은 새로운 양식 응답이 입력되는 곳이며 sheet2는 정렬의 "아카이브"이므로 sheet1은 내가 아직 보지 않은 가장 최근의 항목 만 갖습니다.
sheet1 열 8에는 5 자리 숫자가 있고 열 9는 비어 있거나 "Rcvd"라고 표시되며 나머지 열은 복사해야하는 다른 데이터를 보유하지만 고유 값은 보유하지 않습니다. sheet1과 sheet2는 동일한 열 머리글과 구성을 가지고 있지만 sheet2에서는 8 열만 채워집니다.
내가 원하는 것은 sheet1에서 sheet2 로의 모든 값을 복사하는 것입니다. 그 행의 열 9가 "Rcvd"(편집 중)로 변경됩니다. 그런 다음 행의 값을 열 2의 일치하는 값을 가진 행의 동일한 열에서 sheet2에 삽입해야합니다. 그러면 지정된 행을 sheet1에서 삭제해야합니다.
지금까지 나는 sheet1에서 sheet2로 이동하고 sheet1에서 자신을 삭제할 수 있지만 sheet2의 마지막 행에서만 sheet2의 일치하는 열 값을 가진 행에 붙여 넣을 수는 없었습니다.
나는이 스크립트를 사용하고 : 나에게
function onEdit(event) {
// assumes source data in sheet named "sheet1"
// target sheet of move to named "sheet2"
// column with rcvd is col 9 or I
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
if(s.getName() == "sheet1" && r.getColumn() == 9 && r.getValue() == "Rcvd") {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("sheet2");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
}
}
, 그것은이 .getRange처럼 보인다 (targetSheet.getLastRow() 1, 1) 올바른 행을 얻기 위해 변경해야 할 것입니다 열 8 값을 기준으로 sheet2의 수를 계산하지만 성공하려면별로 성공하지 못합니다.
감사합니다.
에 맞게 시트 이름과 열을 변경해야합니다 !!!!! 감사합니다. – 1ManRockBand
Google 양식 데이터와 함께 사용하기 때문에 moveTo 명령으로 양식 데이터를 자르지 못했습니다. 나는'moveTo (target)'을'copyTo (target)'로 바꾸고 그 문제를 수정했다. 다시 한 번 감사드립니다! – 1ManRockBand