前提・実現したいこと
GASで在庫管理シートを作成しております。
「J列:取引完了フラグ」が押されたら「L列:仮在庫計算の値」を、
買取価格表 or 販売価格表シートの「D列:在庫」へ自動反映したいと考えております。
文章のみですと上手く伝えられないため、スプレッドシートのURLを記載します。
https://docs.google.com/spreadsheets/d/1IeiLGX01Z0T2hIaT60gWa8QU_wEhKjZMGKsxV07YRI0/edit#gid=721420774
標題にもございます通り、取引完了した際取引した在庫数を引いた数を、マスタへ自動反映するコードを作成しているのですが上手くいきません。
発生している問題・エラーメッセージ
実装手順を書き出したものの、①の段階で躓いております。
売買のあったアイテムがマスタのどの位置にあるのかを探す処理が上手くいきません。
<実装手順> ①売買のあったアイテム名を、マスタから探す処理(B列:購入希望 or 買取希望?|購入希望なら「販売価格表」・買取希望なら「買取価格表」) ②行を探せたら、各マスタの「D列:在庫」に「取引シート.L列:仮在庫計算」値をセットする処理 ③J列:取引完了フラグが押されたら、①~②の処理が走るように
該当のソースコード
GAS
1//ゴール 2//「J列:取引完了フラグ」が押されたら、「L列:仮在庫計算の値」を、買取価格表 or 販売価格表シートの「D列:在庫」へ自動反映したい。 3 4//実装手順 5//①売買のあったアイテム名を、マスタから探す処理(B列:購入希望 or 買取希望?|購入希望なら「販売価格表」・買取希望なら「買取価格表」) 6//②行を探せたら、D列:在庫に値をセットする処理 7//③J列:取引完了フラグが押されたら、①~②の処理が走るように 8 9//懸念点 10//完了したレコード削除が「J列:取引完了フラグ」チェック時に動いてしまうため、在庫自動更新はこのスプリクトよりも先に走るようにしたい 11 12////////////// ***** 変数まとめ ***** ////////////// 13//**シート内の全データを取得// 14 var ss = SpreadsheetApp.getActiveSheet(); 15 var data = ss.getDataRange().getValues(); 16 17//**変更されたセルを取得// 18 var targetCell = ss.getActiveCell(); 19 var targetRow = targetCell.getRow(); 20 21//参照マスタ 22 var kaitori = ss.getSheetByName("買取価格表"); 23 var hanbai = ss.getSheetByName("販売価格表"); 24////////////// ***** 変数まとめ ***** ////////////// 25 26function search() { 27//**マスタから探す処理(B列:購入希望 or 買取希望?|購入希望なら「販売価格表」・買取希望なら「買取価格表」)// 28 if(targetCell.getColumn() == 2 && targetCell.getValues() == "購入希望") 29 { 30 } 31 else(targetCell.getColumn() == 2 && targetCell.getValues() == "買取希望") 32 { 33 } 34} 35
補足情報(FW/ツールのバージョンなど)
完了したレコード削除が「J列:取引完了フラグ」チェック時に動いてしまうため、
在庫自動更新はこのスプリクトよりも先に走るようにしたいと考えております。
// **完了レコード削除** // function delete_record() { var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('取引シート'); var data = sheet.getDataRange().getValues(); var length = data.length; for (var i = length - 1; i >= 1 ; i--){ var keyword = data[i][9]; if(keyword === true){ sheet.deleteRow(i + 1); } } }
以上でございます。
初心者質問で申し訳ないのですが、お力添えいただけますと幸いでございます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/08 03:15