- ベストアンサー
IF構文の使い方
皆さんにはいつもお世話になっております。 エクセルVBAでご教授していただきたいことがあります。 1行目は空白行で、B2~CW51がデータがあるセルです。 A列は空白列で、B列(B2以降)にデータがある場合は、ListBox3の文字列を同行のcell(i , "A")に代入したいのですが。 下記のように、if構文を使ってみたのですが、うまくいきません。 Sub テスト_Click() Dim i As Integer With ActiveSheet For i = 2 To 51 If .Cells(i, "B") = "" Then .Cells(i, "A") = "" Else Cells(i, "A") = ListBox3.Value Exit For End If Next End With End Sub よろしくお願いいたします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
ANo.3です。 追記。 もし、「全部の行に設定したいのに、途中までしか設定されない」とかだったら、 > Cells(i, "A") = ListBox3.Value > Exit For > End If この「Exit For」の所為なので、削除すれば全部処理されますけど・・・
その他の回答 (4)
もしかしたらですが、 If .Cells(i, "B") = "" Then の部分で、実際には、.Cells(i, "B") = " "とかにはなっていませんか?。Trim(.Cells(i, "B"))とすれば、.Cells(i, "B") = " "でも""になります。
お礼
ddtddtddtさん、ご回答ありがとうございました。 原因は、Exit Forでした。今度は勉強してから、ミスをなくすように頑張ります。 本当ありがとうございました。
- dsuekichi
- ベストアンサー率64% (171/265)
どう、上手くいかないのでしょう? 提示されたコードを試してみましたが・・・ とりあえず、ちゃんと動いているように見えますが・・・ 「ListBox3で何も選択しないで実行した」なんて事は無いですよね?
- kokorone
- ベストアンサー率38% (417/1093)
訂正です。 Cells(x,y)の表記をCells(x,y).Valueに変更されてみたらどうなりますか??
- kokorone
- ベストアンサー率38% (417/1093)
http://excelvba.pc-users.net/fol2/2_1.html Cells(x,y)の表記をCells(x,y)>Valueに変更されてみたらどうなりますか??
お礼
すみません。勉強不足でした。Exit Forをはずしたら出来ました。 kokoroneさん、わざわざご回答いただいたのに申し訳ありませんでした。
お礼
dsuekichiさん、ありがとうございました。 Exit Forを削除したら出来ました。やはり、コピペで作ろうとしていたのが悪かったようです。少し勉強してから先に進んで行きたいと思います。 本当、ありがとうございました。