前提・実現したいこと
Google formとGoogle Calendarで会議室予約システムを作りました。
事業所ごとに管理者が違うので、各事業所ごとの予約フォームを作り、
(予約フォームの項目はどの事業所でも同じです。)
「フォーム送信」をトリガーにして予約イベントをカレンダーに登録して、
管理者と予約者に確認メールが届くようシステムを作成しました。
ここまではうまくいったのですが、事業所ごとの予約フォームの回答を
統合していくために、上記の動作の延長で、最新の回答行の配列を
別のマスタースプレッドシートの空白行に入力するコードを書き足すと
下記のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
メソッド getRange(number,number,number,number) が見つかりません。
カレンダーイベントの作成と、管理者・予約者へのメール送信は実行されますが、
マスタースプレッドシートへの入力はされません。
該当のソースコード
//フォーム回答のスプレッドシートのコンテナバインドスクリプトです。 //「フォーム」送信時をトリガーにしています。 //カレンダーイベント作成、メール送信は問題なく動作しているのでコード省略します。 var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var num_row = sheet.getLastRow(); var finRow = sheet.getRange(num_row, 1,1,11).getValues(); var mSheet = SpreadsheetApp.openById('コピー先スプレッドシート'); var m_numrow =mSheet.getLastRow(); var m_coprow = m_numrow+1; mSheet.getRange(m_coprow, 1,1,11).setValues(finRow); //ここでエラーが出ます mSheet.getRange(m_coprow,12).setValue("テスト");
試したこと
最終行と最終行+1のログを取りましたが、最終行は1.0(number型)、最終行+1は2.0(number型)でした。
下記の通り、「最終行+1」を変数にせず引数で直接指定してみましたが、結果は変わりません。
1 var m_numrow =mSheet.getLastRow(); 2 evSheet.getRange(m_coprow +1, 1,1,11).setValues(finRow)
調べる限りでは、一般的にgetLastRow()+1でみなさん最終行のすぐ下の空白行を取得できているみたいで、
私のようなエラーで困っている方を探すことができず、こちらに質問致しました。
プログラミングをするのが初めてで、初歩の知識が足りておらず説明が不足している部分が
きっと多々あることと思いますが、何卒、御指南頂けますと幸いです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/30 10:35