質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.40%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

1回答

325閲覧

【GAS】for文で組んだ繰り返し条件が無限に続いてしまうのを解決したい

aaiaka

総合スコア2

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

1クリップ

投稿2024/04/14 13:03

編集2024/04/14 13:05

実現したいこと

以下スプレッドシートのC4以降に記載されたURLからスクレイピングした情報をgasのログで出力したいです。
(C列や4行目から始まっていることについてはわざとなので気にしないでください。)
https://docs.google.com/spreadsheets/d/1W-LaNfoagKTMoum6muGcXEl_R9nNPb1OfaxSSy1SbVM/edit?usp=sharing

発生している問題・分からないこと

for文が無限にループする
https://gyazo.com/a1f1899ea3117b851fa421fc6a23eec1

エラーメッセージ

error

1エラーメッセージはありません

該当のソースコード

function mypj() { //スプシのデータ取得 const spreadFile = SpreadsheetApp.getActiveSpreadsheet(); //スプシのシート取得 const spreadSheet = spreadFile.getSheetByName("シート1"); //URLデータから各詳細情報を抜き出すために何回同じことを繰り返すのかを指定する数 const repeatNumber = spreadSheet.getLastRow()-3; console.log(repeatNumber); //URLを取得 const datas = spreadSheet.getRange(4,3,repeatNumber,1).getValues(); console.log(datas); //アウトプット用の配置を宣言 const values = []; //繰り返し処理を宣言 for(let i=0 ; i<repeatNumber ; i + 1 ) { //HTMLを取得 const url = datas[i]; const response = UrlFetchApp.fetch(url); const html = response.getContentText("UTF-8") //〇〇を取得 let upDay = Parser.data(html).from('</dt>').to("</dd>").build(); upDay = upDay.replace(/<dd class="ly_col tar ly_colsize_4">/,""); upDay = upDay.replace(/[\s\t\n]/g,""); console.log(upDay); } }

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

for文の終了条件のrepeatNumberの変数を定数に変えましたが、改善できませんでした。

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

for 文が誤っています。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/for
前回の質問ではできているようです。

js

1// 誤 2for(let i=0 ; i<repeatNumber ; i + 1 ) { 3 4// 正 5for (let i = 0; i < repeatNumber; i++) {

投稿2024/04/14 16:55

satokei

総合スコア1217

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aaiaka

2024/04/15 00:56

回答ありがとうございます。 試したところ問題が解決しました! ベストアンサーに選ばせていただきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.40%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問