こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルVBAで任意の文字列を抽出するには・・・

エクセル2003で作成した住所録があります。
県名(3文字)のみを抽出して、新たに設けたD列に表示させたいと考えています。
Sub 県名の列作成()
 Dim myStr As String
 myStr = ActiveCell.Value
 Range("D2").Value = Left(myStr,3)
End Sub
ここまで、できたのですが・・・・
B列の2行目から順に処理をして、一覧表の最後まで行って、
空白セルの行が見つかったら終了させる方法が分かりません。
どうかよろしくお願いします。

投稿日時 - 2014-10-11 14:50:12

QNo.8786729

困ってます

質問者が選んだベストアンサー

Sub 県名の列作成()
Dim i As Long
For i = 2 To Cells(Rows.Count, "B").End(xlUp).Row
Range("D" & i).Value = Left(Range("B" & i), 3)
Next i
End Sub

ではどうでしょうか。

Cells(Rows.Count, "B").End(xlUp).Rowで
B列の入力されている最終行までにしています。
途中に空白があっても最後まで実行されます。

投稿日時 - 2014-10-11 15:45:23

お礼

完璧です。ありがとうございました。

投稿日時 - 2014-10-11 16:31:17

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

Do while~end do と セルがブランクの時というので検索かけると多分、サンプルのコードが出てくると思います。

ちなみに県名は~県で3文字とは限りませんが、良いんですか?和歌山県とか、鹿児島県とか。

投稿日時 - 2014-10-11 15:09:14

お礼

回答ありがとうございます。
3文字でOKです。
いろいろやってみたのですが「Do while~end do など」
どうしてもうまくいかないのです。

投稿日時 - 2014-10-11 15:24:49

あなたにオススメの質問