前提・実現したいこと
スプレッドシートにある"見積発行"シートで更新した情報を"DB"シートの同じ見積番号がある行に上書き、見積番号が無ければ"DB"シートの最終行に追加するスクリプトを書いています。
発生している問題・エラーメッセージ
コードを実行すると見積番号が一致した場合、情報の上書きと最終行への追加動作の両方が行われます。
if文内にログを入れて実行すると3行目で見積番号が一致する前にelse内の動作が実行されてしまいます。
実行ログ
13:08:02 お知らせ 実行開始
13:08:40 情報 Message inside Eles
13:08:40 情報 Message inside Eles
13:08:40 情報 Matched quote
13:08:04 お知らせ 実行完了
該当のソースコード
function uploadQuote() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheetPrint = ss.getSheetByName("見積発行"); const sheetDB = ss.getSheetByName("DB"); const uploadData = sheetPrint.getRange(6,13,1,218).getValues()[0]; const quoteNumber = uploadData[0]; const lastRowDB = sheetDB.getLastRow();// DBシートの最終行を取得 const dbRange = sheetDB.getRange(1,1,lastRowDB).getValues();// DBシートのA列 for (var i = 0; i < lastRowDB; i++) { if (dbRange[i].toString() === quoteNumber) { console.log("Matched quote number");// 見積番号が一致したら上書き break; } else { console.log("Message inside Eles");// 見積番号が一致しなければ、最終行に追加 } } }
試したこと
サンプルで別のコードを書くと、if分が終了する前にelse分へ飛んでしまう事は無かったのですが、作成中のコードでどうしてこの様な動作になってしまうのかが分かりません。
すみませんがお力添えをお願いします。
回答1件
あなたの回答
tips
プレビュー