다음 작업을 수행하는 스크립트가 있습니다.가장 바깥 쪽 루프를 제외한 다중 루프 작동
최 내측에에서 :
로 반복 위에 각 속성을 오브젝트. (in)! 이 시점에서 현재 오브젝트
for (var i=0; i < col-5; i++) { var json = sheet.getRange(arr[m-1],i+6).getValue(); //First value should be row position from VLOOKUP. var jsobj = JSON.parse(json);
함유 각 열 위에
for (var j in jsobj) {
var headerRow = Object.keys(jsobj).sort();
var row = headerRow.map(function(key){ return jsobj[key]});
var contents = [row];
var headers = [headerRow];
sheets[counter].getRange(1+i, 1, contents.length, headerRow.length).setValues(contents);
}
반복 처리는, I가 다른 루프를 실행하려면, VAR의 m은 서로 다른 결과를 제공한다 따라서 변화하는 값이고.
for (var m=item; m > 0; m--) {
counter++
"m"에 대한 값 배열을 생성하는 폐 루프가 있습니다.
var arr = [];
for (var y = 0; y < folios.length; y++) {
if(folios[y] == name){
arr.push(y);
}
}
먼저 두 개의 안쪽의 루프는 의도 한대로 그러나 나는 그것이 외부 루프에 대한 작업을 얻을 수있을 수없는 것 작동합니다. 아래 스프레드 시트 사본과 전체 코드를 제공합니다.
function createTable() {
var doc = SpreadsheetApp.openById("1Jv3E51r5zMuMLmn0qkCRjQBBRJHK_QTSdOeCSLRG7Do");
var sheet = doc.getSheetByName("json");
var sheet2 = doc.getSheetByName("tabla de frecuencias");
var sheet7 = doc.getSheetByName("tf2");
//Variable framework
var prelast = sheet.getRange("A1:A").getValues();
var last = prelast.filter(String).length;
var folio = sheet.getRange(last,3).getValue();
var folios = sheet.getRange("D1:D").getValues();
var range = sheet.getRange("C1:C");
var name = sheet.getRange(last,4).getValue();
var sheets = [sheet2,sheet7];
var counter = -1
var col = sheet.getLastColumn();
var arr = [];
for (var y = 0; y < folios.length; y++) { //This creates an array for later use.
if(folios[y] == name){
arr.push(y);
}
}
var item = arr.length;
for (var m=item; m > 0; m--) { //This is the loop that is not working.
counter++ //When the first iteration completes, this should increase for later use.
for (var i=0; i < col-5; i++) { //This and the below loop work as intended.
var json = sheet.getRange(arr[m-1],i+6).getValue(); //This is a critical point where M decreases its value all the way to 0 to fetch an entire row from my JSON sheet. It works in testing only for one row. I want it to go through each row in the array and write the values on different sheets, or even in the same sheet.
var jsobj = JSON.parse(json);
for (var j in jsobj) { //Works!
var headerRow = Object.keys(jsobj).sort();
var row = headerRow.map(function(key){ return jsobj[key]});
var contents = [row];
var headers = [headerRow];
sheets[counter].getRange(1+i, 1, contents.length, headerRow.length).setValues(contents); //Let me explain: var sheets contain an array of two sheets, I want the script to write over each sheet based on the outermost loop.
}
}
}
마지막으로 내 스프레드 시트. 들러
https://docs.google.com/spreadsheets/d/1Jv3E51r5zMuMLmn0qkCRjQBBRJHK_QTSdOeCSLRG7Do/edit?usp=sharing
감사합니다.
이것은 많은 코드이며 스프레드 시트는 더 많은 코드를 가지고 있습니다. 최소한의 재현 가능한 예제를 만들 수 있습니까? –
관련 부분 만 포함하도록 스프레드 시트와 스크립트 내부를 살균했습니다. –