以下のコードのを動かすと 38行目のコードにエラーが発生します
エラー:Those rows are out of bounds.
範囲外を求めているということらしいのですが、どこを直せばいいかわからないです、、
コードがすごくきたなくて申し訳ないのですがご教授いただきたいです、、、、
宜しくお願い申し上げます。
■コピー元のデータはA列からF列まで入っています。
1、コピー元(A用)のC列からF列をコピーしてB用のA列からD列に貼り付ける。
2、C列には数字が入っています。
3、C列を数字が大きい順にソートします
4、C列をセルを上から見ていき、1という数字に当たったらそこから下を消します。
5、消した後のデータをD列→A列の順番でソートする
ざっくりいうとこういうことをしたいです。
1function sort() { 2 3 var sh = SpreadsheetApp.getActive(); 4 sh.insertSheet(1); 5 sh.getActiveSheet().setName('A用'); 6 sh.setActiveSheet(sh.getSheetByName('B用'), true); 7 sh.getRange('C:F').activate(); 8 sh.setActiveSheet(sh.getSheetByName('A用'), true); 9 sh.getRange('\'B用\'!C:F').copyTo(sh.getActiveRange(), 10 SpreadsheetApp.CopyPasteType.PASTE_VALUES, false); 11 12 13 var target_col = 3; 14 var asc = false; 15 var start_row = 2; 16 var start_col = 1; 17 18 var sh = SpreadsheetApp.getActiveSheet(); 19 var last_col = sh.getLastColumn(); 20 var last_row = sh.getLastRow(); 21 var num_rows = last_row - (start_row - 1); 22 var num_cols = last_col - (start_col - 1); 23 var range = sh.getRange(start_row, start_col, num_rows, num_cols); 24 range.sort([{ 25 column: target_col, 26 ascending: asc 27 }]); 28 29 30 var sh = SpreadsheetApp.getActiveSheet(); 31 var last_row = sh.getLastRow(); 32 for(var i = 2; i < last_row; i++){ 33 var range = sh.getRange("C"+ i); 34 var value = range.getDisplayValue(); 35 if(value == "1"){ 36 var start_row = i; 37 var num_row = 2500; 38 sh.deleteRows(start_row, num_row); 39 i = i - 1; 40 } 41 } 42 43 var target_col = 4; 44 var asc = true; 45 var start_row = 2; 46 var start_col = 1; 47 48 var sh = SpreadsheetApp.getActiveSheet(); 49 var last_col = sh.getLastColumn(); 50 var last_row = sh.getLastRow(); 51 var num_rows = last_row - (start_row - 1); 52 var num_cols = last_col - (start_col - 1); 53 var range = sh.getRange(start_row, start_col, num_rows, num_cols); 54 range.sort([{ 55 column: target_col, 56 ascending: asc 57 }]); 58 59 var target_col = 1; 60 var asc = true; 61 var start_row = 2; 62 var start_col = 1; 63 64 var sh = SpreadsheetApp.getActiveSheet(); 65 var last_col = sh.getLastColumn(); 66 var last_row = sh.getLastRow(); 67 var num_rows = last_row - (start_row - 1); 68 var num_cols = last_col - (start_col - 1); 69 var range = sh.getRange(start_row, start_col, num_rows, num_cols); 70 range.sort([{ 71 column: target_col, 72 ascending: asc 73 }]); 74}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。