2016-09-26 20 views
-2

VBAを使用して、文字列内にスペースを含まずに正確に4文字の文字列を検索しようとしています。細胞にはもっと多くの文字列があります。私は数式の使用を避けたいと思います。コラム「A」を想定し特定の長さの文字列を見つけるVBA

+1

VBAは、与えられた値の長さを返します 'Len'と呼ばれる機能があります。これは、セルまたは一部のセルの値、またはその他の方法で使用できます。あなたの入力の例を挙げて、出力をどのようにフォーマットしたいかを示すことができれば役に立ちます。また、このアクションを試して実行するために書いたコードを表示してください。 – Dave

+0

MODIオフィスモジュールで作成されたOCRテキスト認識メソッドの基本的な結果である列でこれを実行したいと思います。 1つの列に90行程度あり、各セルには2つの文字列があります。私はこの特定の列の中で文字列4文字/数字を長く抽出したい。 – eurano

答えて

2

を使用すると、特定の文字列を持っているように、私は4つの文字、あなたは細胞内で見つける必要がある、あなたの質問を読ん1

Option Explicit 

Sub main() 
    Dim cell As Range 
    Dim arr As Variant, arrElem As Variant 

    With Worksheets("Strings") '<--| change "Strings" to your actual worksheet name 
     For Each cell In .Range("A1", .Cells(.Rows.Count, "A").End(xlUp)) 
      arr = Split(Replace(cell.Value, " ", " "), " ") '<--| change "A"'s to your actual relevant column index 
      For Each arrElem In arr 
       If Len(arrElem) = 4 Then MsgBox arrElem 
      Next arrElem 
     Next cell 
    End With 
End Sub 
+0

ありがとうございました!これは完全に機能します。 – eurano

+0

@eurano同じ質問への答えを探している人を助けるために、答えを正しいものとしてマークしてください。 –

+0

由良野、よろしくお願いします。はい、また@SkipIntroが指摘したように、回答は受け入れられたものとしてマークしてください。ありがとうございました – user3598756

0

です。これはこれを行います。ちょうどあなたの文字列があるものは何でもして"test"を交換し、必要に応じて列を変更します。

Sub findCells() 
Dim rCells() As Variant 
Dim str As String 
Dim col As Integer 

str = "test" ' replace this with the text you want to find 
col = 1 ' to search Column A 

Dim i As Long 

For i = 1 To Cells(Rows.Count, col).End(xlUp).Row 
    If InStr(1, Cells(i, col), str) Then 
     ' Match found, add code here to do 
     ' whatever you need. 
     Debug.Print "Match found in cell: " & Cells(i, col).Address 
    End If 
Next i 

End Sub 
関連する問題