Excelの質問です。一番右端の半角スペース以降の文字列をすべて削除するような関数やマクロはないでしょうか。

今、B列に次のようなデータが、4万行近く並んでおります。

-----------------------
らくだ 動物 アフリカ
らくだ 動物 特徴
らくだ 生息地 アジア
らくだ 生態 進化の過程
・・・
-----------------------


といった感じです。
この状態から、一番右端の半角スペース以降の文字列全てを削除したいので、

-----------------------
らくだ 動物
らくだ 動物
らくだ 生息地
らくだ 生態
・・・
-----------------------

のようにしたいのですが・・・データが膨大で、手作業で行うのは途方もない作業です。
関数やマクロを用いて、何とか効率的に文字列を削除する方法はないでしょうか。

よろしくお願い致します。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2015/08/31 23:55:51
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:taknt No.1

回答回数13539ベストアンサー獲得回数1198

ポイント500pt
Sub main()
    Dim r As Long
    For r = 1 To Rows.Count
        If Cells(r, "B") = "" Then Exit Sub
        a = InStrRev(" " & Cells(r, "B"), " ")
        If a > 1 Then
            Cells(r, "B") = Left(Cells(r, "B"), a - 2)
        End If
    Next r
End Sub



二行目からとかの場合は
For r = 1
の 1を 2に 変えればよいです。

他3件のコメントを見る
id:taknt

If Cells(r, "B") = "" Then Exit Sub

上記の一行を削除して


For r = 1 To Rows.Count

Rows.Countの箇所に 最終行番号を 入れてください。

2015/08/28 23:16:44
id:moon-fondu

きゃづみぃさんありがとうございます、うまく消すことができました!

2015/08/31 23:55:42

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません