한 시트의 범위에서 데이터를 복사하여 B 열의 첫 번째 빈 셀에 붙여 넣는 스크립트를 작성하려고합니다. 시트의 첫 번째 빈 셀에 붙여 넣을 수 있고 제대로 작동하는 스크립트가 있습니다. , 그러나 A 열에 ID 번호의 정적 행이 있으므로 데이터를 붙여 넣으면 시트 아래로 내려갑니다. 따라서 A 열을 건너 뛰고 B 열의 첫 번째 빈 셀에 붙여 넣을 방법이 필요합니다.
다른 부분은 때때로 B 열에 빈 셀이 있다는 것입니다. 따라서 마지막 빈 셀을 가져 오려면이를 건너 뛰어야합니다.
마지막 빈 셀을 가져오고 제대로 작동하는 자습서를 찾았지만 데이터를 붙여 넣을 함수에 통합하는 방법을 알 수 없습니다. 지금까지 내가 가진 것은 다음과 같습니다.
function myFunction() {
var sss = SpreadsheetApp.openById('1dp5s8G9vFF5LzF5mAaY-JoySLGekh5UKHwt6jFcGOnA');
var ss = sss.getSheetByName('Form');
var range = ss.getRange('A8:H');
var data = range.getValues();
var tss = SpreadsheetApp.openById('1Vq_xX9cbC6OBAh1IRKsVKSPQvc5FEUFsJ2mlPzuFZ6o');
var ts = tss.getSheetByName('Data');
var columnToCheck = ts.getRange("B:B").getValues();
var lastRow = getLastRowSpecial(columnToCheck);
Logger.log(lastRow)
};
function getLastRowSpecial(range){
var rowNum = 0;
var blank = false;
for(var row = 0; row < range.length; row++){
if(range[row][0] === "" && !blank){
rowNum = row;
blank = true;
}else if(range[row][0] !== ""){
blank = false;
};
};
return rowNum;
};
그래서 기본적으로 "lastRow"에 의해 결정된 셀에서 setValues (data) 함수가 필요합니다.
또는 다른 방법으로이 작업을 수행 할 수있는 방법에 대한 제안이있는 경우 듣고 싶습니다.
당신은 매우 가깝습니다. 이 getLastRowSpecial
함수는 실제로 열의 마지막 행을 가져오고 B
빈 셀을 고려합니다.
그런 다음 목표는 반환 된 값을 사용하고 setValues 를 사용하여 lastRow
시작하는 데이터를 설정하는 것 입니다.lastRow+1
ts.getRange(lastRow+1,2,data.length,data[0].length).setValues(data);
스크립트에서 내가 만든 또 다른 수정 사항은 전체 data
범위 를 취하는 대신 콘텐츠가있는 마지막 행까지만 얻는 것입니다. 이것이 작동하지 않으면 해당 부분을 건너 뛰고 솔루션을 사용하십시오. 이것은 내가 수정 한 부분입니다.
var range = ss.getRange('A8:H'+ss.getLastRow());
나는 수정했다 myFunction
:
function myFunction() {
var sss = SpreadsheetApp.openById('1dp5s8G9vFF5LzF5mAaY-JoySLGekh5UKHwt6jFcGOnA');
var ss = sss.getSheetByName('Form');
var range = ss.getRange('A8:H'+ss.getLastRow()); // new code
var data = range.getValues();
var tss = SpreadsheetApp.openById('1Vq_xX9cbC6OBAh1IRKsVKSPQvc5FEUFsJ2mlPzuFZ6o');
var ts = tss.getSheetByName('Data');
var columnToCheck = ts.getRange("B:B").getValues();
var lastRow = getLastRowSpecial(columnToCheck);
ts.getRange(lastRow+1,2,data.length,data[0].length).setValues(data); // new code
};
function getLastRowSpecial(range){
var rowNum = 0;
var blank = false;
for(var row = 0; row < range.length; row++){
if(range[row][0] === "" && !blank){
rowNum = row;
blank = true;
}else if(range[row][0] !== ""){
blank = false;
};
};
return rowNum;
};
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다