プロが教える店舗&オフィスのセキュリティ対策術

競馬の内容ですが、VBAを勉強中でして、どうしてもわからいことがありまして質問します。

2018年7月7日 コンピ指数-2回福島1日目

上記のないように関して【1日目】の【1】を抽出したいのです。

これは変化しまして【10日目】の時は、【10】を抽出したいのです。

【福島】は競馬場の名前で、札幌、東京、小倉等に変化します。

関数でやった場合は
=VALUE(MID(A4,MIN(SEARCH({1,2,3,4,5,6,7,8,9,0},A4&1234567890)),LEN(A4)-(LENB(A4)-LEN(A4))))

これは自分で発見できたのですが、VBAで実行した場合にどのようなコードになるのでしょうか?

お手数ですが、ご教示お願いします。

A 回答 (1件)

こんばんは!



要するにセル内の最後の「数字」のみを表示したい!というコトですね。
一例です。
元データはA2セル以降にあり、B列に表示するとします。

Sub Sample1()
 Dim i As Long, k As Long, cnt As Long
 Dim myStr As String, myFlg As Boolean
  For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row
   For k = Len(Cells(i, "A")) To 1 Step -1
    myStr = Mid(Cells(i, "A"), k, 1)
     If myStr Like "[0-9]" Then
      myFlg = True
      cnt = cnt + 1
     Else
      If myFlg = True Then Exit For
     End If
   Next k
    If myFlg = True Then
     Cells(i, "B") = Mid(Cells(i, "A"), k + 1, cnt)
    End If
   myFlg = False
   cnt = 0
  Next i
End Sub

※ 最後が 「○○日目」に限らず
最後の数字のみが表示されます。m(_ _)m
    • good
    • 1
この回答へのお礼

ありがとうございます

やってみます。

お礼日時:2018/11/27 20:38

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