MS Word - tìm số, không phải chữ số riêng lẻ


0

Mã bên dưới tìm kiếm tài liệu MS Word, trích xuất số và đặt chúng vào Excel.

Điều tôi cần là nếu tài liệu có số như 12345, nó cần trích xuất 12345 chứ không phải 1, 2, 3, 4 và 5. Tôi có số lượng độ dài khác nhau trong toàn bộ tài liệu.

Tôi nhận ra điều đó .Text = "[0-9]"và tôi thiếu regex nhưng hy vọng ai đó có thể giúp đỡ.

Public Sub NumbersToExcel()
    Dim xlApp As Object
    Dim xlWbk As Object
    Dim xlWsh As Object
    Dim blnStartExcel As Boolean
    Dim i As Integer

    On Error Resume Next

    Set xlApp = GetObject(, "Excel.Application")
    If xlApp Is Nothing Then
        Set xlApp = CreateObject("Excel.Application")
        If xlApp Is Nothing Then
            MsgBox "Cannot activate Excel!", vbExclamation
            Exit Sub
        End If
        blnStartExcel = True
    End If

    On Error GoTo ErrHandler

    Set xlWbk = xlApp.Workbooks.Add
    Set xlWsh = xlWbk.Worksheets(1)

    With ActiveDocument.Content
        With .Find
            .ClearFormatting
            .Text = "[0-9]"
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindStop
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchAllWordForms = False
            .MatchSoundsLike = False
            .MatchWildcards = True
        End With
        While .Find.Execute
            i = i + 1
            xlWsh.Cells(i, 1) = "'" & .Text
        Wend
        .Find.MatchWildcards = False
    End With

ExitHandler:
    On Error Resume Next
    xlWbk.Close SaveChanges:=True
    If blnStartExcel Then
        xlApp.Quit
    End If
    Set xlWsh = Nothing
    Set xlWbk = Nothing
    Set xlApp = Nothing
    Exit Sub

ErrHandler:
    MsgBox Err.Description, vbExclamation
    Resume ExitHandler

End Sub

2
sử dụng.Text = "[0-9]{1,}"
Máté Juhász

cũng có một cái nhìn ở đây, nó có thể giúp: superuser.com/questions/993886/NH
Máté Juhász

Bây giờ tôi nhận được "Lỗi tự động hóa" - ngay cả với mã gốc đã hoạt động trước đó
pee2pee

Bạn đã có nhiều vấn đề khác nhau, có thể khó giải quyết cùng một lúc. 1. Câu hỏi ban đầu bạn đã đăng độc lập với VBA, bạn gọi chức năng tìm của Word từ macro của bạn, trước tiên hãy thử tìm một biểu thức hoạt động ở đó và nếu bạn có nó, bạn có thể đưa nó vào biểu thức của mình. 2. "lỗi tự động hóa" khá rộng, vui lòng thử gỡ lỗi mã của bạn và cung cấp cho chúng tôi thông tin cụ thể hơn, tốt nhất là trong một câu hỏi khác.
Máté Juhász
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.