0

次の内容を含む Excel ワークシート内のセルを検索できるマクロまたは UDF を作成したいと考えています。 . さらに、関数/マクロは、PO が単語の一部である CORPORATE のようなエントリを含むセルを検出しないようにする必要があります。

適格なデータを含むすべてのセルを強調表示する必要があります。

4

2 に答える 2

0

これを試して:

Sub Tester()
    Dim c As Range
    For Each c In Selection.Cells
        c.Interior.Color = IIf(RegexpTest(c.Value), vbRed, vbGreen)
    Next c
End Sub


Function RegexpTest(v As String)
    Static re As Object 'note static: you must reset the VB environment
                        '  (press the "stop" button) if you edit the
                        '   Pattern below
    If re Is Nothing Then
        Set re = CreateObject("VBScript.RegExp")
        '"PO" then optional #, optional space, then 2-5 digits
        re.Pattern = "PO#?\s?\d{2,5}"
        re.ignorecase = True
    End If
    RegexpTest = re.test(v)
End Function
于 2015-01-19T17:51:50.297 に答える
0

この小さなUDFは、一致が存在する場合は1を返し、そうでない場合は0を返します。

Public Function IsItThere(r As Range) As Long
    Dim st As String
    st = "0,1,2,3,4,5,6,7,8,9"
    ary = Split(st, ",")
    st = r.Text
    IsItThere = 1
    For Each a In ary
    If InStr(1, st, "PO" & a) > 1 Then Exit Function
    If InStr(1, st, "PO " & a) > 1 Then Exit Function
    If InStr(1, st, "PO#" & a) > 1 Then Exit Function
    If InStr(1, st, "PO# " & a) > 1 Then Exit Function
    Next a
    IsItThere = 0
End Function

正規表現を使用してパターンを見つけることもできます。

于 2015-01-15T19:14:31.897 に答える