dポイントプレゼントキャンペーン実施中!

Cells(10,4)(10,6)(10,8)(11,4)(11,6)(11,8)

のセルを配列に入れようとしたのですがうまくいきません。
どうすればよいでしょうか。
For i = 0 To 2
Ceat(i) = Sheets("登録").Cells(10, i * 2 + 4)
Next
If i = 8 Then
For k = 3 To 5

Ceat(k) = Sheets("登録").Cells(11, k * 2 - 2)
Next
End If

A 回答 (4件)

こんばんは



ループの制御変数iを、ループの外で
>If i = 8 Then
として判断しているのが謎です。

方法はいろいろあると思いますが、セル位置を計算しなくても、そのまま行番号、列番号を利用したループにしておくのが、間違えが少ないし簡単であると思います。

i = 0
For rw = 10 To 11
 For col = 4 To 8 Step 2
  Ceat(i) = Sheets("登録").Cells(rw, col).Value
  i = i + 1
 Next col
Next rw
    • good
    • 1
この回答へのお礼

i=8は今見ると本当に謎です。
式がめちゃめちゃ見やすいです。
ありがとうございます。

お礼日時:2021/05/12 01:19

この条件なら



k=0
For c=4 To 8 Step 2
For r=10 To 11
配列名(k)=Cells(r,c)
k=k+1
Next
Next

シート名は省略。質問にかいてないからね。

また配列は勝手に一次?としていますが、Dim a(3,2)とかもあります。使い方次第ですが念のため。
    • good
    • 0
この回答へのお礼

k=K+1は全く思いつかなかったです。
確かどっかでk=k++みたいなことしてあれ!?できないみたいになってました。stepというワードも初めて知ることが出来ました。ありがとうございます。

お礼日時:2021/05/12 01:22

ReDim Preserveが必要になるのでは?



Sub TEST()

Dim Ceat() As Long

For i = 0 To 2
ReDim Preserve Ceat(i + 1)
Ceat(i) = Sheets("登録").Cells(10, i * 2 + 4)
Next

End Sub
    • good
    • 0
この回答へのお礼

ReDim Preserve、別のところで使おうかなと思いつつも断念したやつです。
いつか使いこなせるようになりたいです。
ありがとうございます。

お礼日時:2021/05/12 01:17

If i = 8 Then ~ End If



のIf文が邪魔じゃない?
i が 8になる事はないと思うよ。
    • good
    • 1
この回答へのお礼

あれ!?
iは8にならない!!
気が付かなかった。
ありがとうございます。

お礼日時:2021/05/12 01:14

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