前提・実現したいこと
gasにてガントチャートに類似したタスク進捗管理表を作成中。
高速化のため配列処理への書き換えを試みていますが、
下記問題でつまづいています。
やりたいこととしては、作業開始日/完了日の入力有無により未着手、仕掛中、完了を表示したいです。
下記問題はつまづいているところまで記載しています。
(ifの作成はこれから)
発生している問題・エラーメッセージ
配列格納後、セルを指定しようとしたところ、for以下に記述すると[列]部が「undefined」となる。forが無い場合、同じ記述内容でも指定セルの値は正しく取得できる。
■for以下に記述 ※「undefined」になる
function hairetu_test() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var lastRow = sheet.getLastRow();
//二次元配列として取得
var values = sheet.getRange(1,1,lastRow,39).getValues();
//for用の変数
var count = values.length;
var c1 = 11;
var c2 = 12;
for(var r_test = 4 ; r_test <= count; r_test++){
var array_jissekistart = values[r_test][c1]//ここの「c1」11が取得できず「undefined」になる
var array_jissekiend = values[r_test][c2]
Logger.log(array_jissekistart);
}
}
■forが無い場合 ※正しく取得
function hairetu_test() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var lastRow = sheet.getLastRow();
//二次元配列として取得
var values = sheet.getRange(1,1,lastRow,39).getValues();
//for用の変数
var count = values.length;
var c1 = 11;
var c2 = 12;
var r_test = 4
var array_jissekistart = values[r_test][c1]
var array_jissekiend = values[r_test][c2]
Logger.log(array_jissekistart);
}
試したこと
変数では無く数値で入力した場合も同様に「undefined」とfor無しは正しく取得できる。
Logger.logで確認済み。Webで調べても記述内容の誤りが見つけきれず。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/23 09:33