プロが教えるわが家の防犯対策術!

GAS超初心者です。スプレッドシートにある文字列をランダムに取り出してTwitterに投稿するためのコードなのですが、 時々『TypeError: undefined からプロパティ「0」を読み取れません。at pickUpTweet(コード:51)』とエラーが出ます。調べても原因が分からず行き詰まっております。どうすれば解決できるでしょうか?
ちなみにコード:51はこれです
→postMessage = cells[Ram1][0] + TimeGet;

↓コード全体はこちらです
function pickUpTweet() {

var cells = sheetData.getRange(2, 1, sheetData.getLastRow() - 1, 2).getValues();
var LRow = sheetData.getLastRow();
var Ram1 =Math.floor(Math.random() * (LRow + 1 - 1)) + 1;

var d = new Date();
var TimeGet = " " + d.getHours() + ":" + d.getMinutes();

var postMessage = "";
postMessage = cells[Ram1][0] + TimeGet;

return postMessage;
}

A 回答 (2件)

こんにちは



GASはまったく存じませんけれど・・・

>ちなみにコード:51はこれです
>→postMessage = cells[Ram1][0] + TimeGet;

よくしりませんけれど、spreadsheetの行(列)番号って1始まりではないのでしょうか?
>var Ram1 =Math.floor(Math.random() * (LRow + 1 - 1)) + 1;
で+1しているのは、そういう意味ではないのですか?

ですので、もしも1始まりなら、
>cells[Ram1][0]
で[0]の属性はないよってことだし、普通に0始まりなら、Ram1が添え字としてオバーフローしてまう可能性があり、その際にエラーになる。
・・・ってことではないのでしょうか?
    • good
    • 0

JavascriptでDOMを生成


結合しているセルがうまくいかないときに手動コピペで運用
getRangeでたくさんの行を取得する
など・・・
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!