質問: Sheet1.Cells(rowNo, 2) 現在、問題を随時追加して追加された全ての問題を反映できるようにしたいのですがどのようにコードを書けばよろしいでしょうか。
回答: UsedRangeは罫線含まれます。罫線あり空白セルも対象でランダムされてるので空白が当たったらそうなるんでしょう。 確認方法、 rowNo=の前の行に数行空白を追加し、 rowNo = Sheet1.UsedRange.Rows.Count といれてこの行にブレークポイントを設定してここで止め、その後F8を1回おして1行動作(この行を動作)させた後にローカルウインドウを開いてrowNoの値を確認。シート1のデータがある最下行の行数になっていれば正しいです。多分罫線の最下行が取得されています。(この次の行にmsgbox rowNoと入れて確認してもいい) 次、その行をrowNo = sheet1.Cells(Rows.Count,1).End(xlUp).Row と書き換えて実行。罫線無視してデータ最下行の行数が取得できているのを確認。 最後、今追加した行を削除して rowNo = Int(Rnd * Sheet1.Cells(Rows.Count,1).End(xlUp).Row + 1) と書き換える。 これでどうでしょう。シート再現面倒なのでこちらで動作確認はしていません。