前提・実現したいこと
GASを初めて使用しています。
予約システムのようなものを作成したく、部屋と時間を選択してもらいフォームで送信、その値をスプレッドシートに保存し、別のスプレッドシートにあらかじめ時間と場所を記載しておき、フォームから送信された該当場所を塗りつぶすという感じを想定しています。
列のみを検索する方法は発見できたのですが、列、行ともに該当場所を検索し、その該当場所に記載をする方法はありませんでしょうか?
今は、行のみ参照ができている状況です。
よろしくお願いいたします。
発生している問題・エラーメッセージ
該当のソースコード
function booking() { const formSs = SpreadsheetApp.getActiveSpreadsheet(); const formSheet = formSs.getSheetByName("answer"); let today = Utilities.formatDate(new Date(), 'Asia/Tokyo', 'yyyy/MM/dd') //最終行取得 let lastRow = formSheet.getLastRow(); //氏名 let sName = formSheet.getRange(lastRow, 3).getValue(); //日付 let day = formSheet.getRange(lastRow, 4).getValue().toString(); //部屋番号 let rNumber = formSheet.getRange(lastRow, 6).getValue(); //開始時間 let time = formSheet.getRange(lastRow, 5).getValue().toString(); //予約表取得 const bookSs = SpreadsheetApp.openById("予約表のスプレッドシートID"); const bookSheet = bookSs.getSheetByName(today); var col = "A"; //部屋番号の場所 var bookRow = "1"; //時間の場所 var rows = get_rows(rNumber, col, bookSheet); rows.forEach(function (row, i) { bookSheet.getRange(row, 2).setValue("Here"); }); } //部屋の確認 function get_rows(rNumber, col, bookSheet) { var array = get_array(bookSheet, col); var rows = []; array.forEach(function (str, i) { if (rNumber == str) { rows.push(i + 1); } }); return rows; } function get_array(bookSheet, col) { var last_row = bookSheet.getLastRow(); var range = bookSheet.getRange(col + "1:" + col + last_row); var values = range.getValues(); var array = []; for (var i = 0; i < values.length; i++) { array.push(values[i][0]); } return array; }
試したこと
補足情報(FW/ツールのバージョンなど)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/08 14:48
2021/04/08 22:57