ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Excel(エクセル)活用コミュのSheet名を得られない

  • mixiチェック
  • このエントリーをはてなブックマークに追加
現在、Bookの中に、0.1〜0.9と言う名前のシートが9枚あります。
For j=1 Ro 9
s = 0.1 * j
For k = 1 To 320
Mesh(k) = Worksheets("s").Cells(k + 2, 2).Value
Next
Next
と言う風にシートの名前を、0.1*jで表現したのですが、
「インデックスが有効範囲にありません、とエラーが出てしまいます。どうしたらいいのでしょうか。お願いします。

コメント(13)

>Worksheets("s")・・・

インデックス番号で取得するなら、""は不要
シート名で取得するなら""は要りますが、その場合、「S」という名前のシートは存在しないという意味ではないでしょうか?

>0.1〜0.9と言う名前のシート・・・
sが、変数であるのはわかるのですが、Str関数で文字型に置き換えて代入するというのはいかがですか。
あれ、Meshに保存するのは最後のシートの値でいいのかな?
For j = 1 To 9
 s = "0." & Trim(Str(j))
 For k = 1 To 320
  mesh(k) = Worksheets(s).Cells(k + 2, 2).Value
 Next k
Next j

という感じです

尚これでは1.0は対応できないので、適用範囲限定です。

ちなみに
For j=0.1 to 0.9 step 0.1
のように書くと、ちょっとだけ簡略化できるかな。
こんにちは、トビ主です。解決しました。ありがとうございます。
For j = 1 To 9
 s = 0.1 * j
 s = "" & s & ""
   For k = 1 To 320
     mesh(k) = Worksheets(s).Cells(k + 2, 2).Value
   Next
Next



では駄目?
Kusakabeさん
 StrではなくFormat関数でいいですか?("0.0")書式で。

どうもPrint#を思い出すのは・・・(若い頃にN88BASICを使って
たせいかw)

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Excel(エクセル)活用 更新情報

Excel(エクセル)活用のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。