使用VBA宏过滤出特定值的Word文档

时间:2019-07-18 20:00:46

标签: vba ms-word filtering word-vba word

目前,我有数千页的Word文档,现在需要定期对其进行过滤,这是一个聊天记录。长话短说,自事件发生以来,我现在需要监视它。以前的设计师对此有所帮助,但由于他从未维护过,因此不再适用。如果发生其他事件,我只需要过滤掉一个人的消息,否则可以更改其值。

我尝试在:周围使用通配符(例如“ ”),并使用节创建器对其进行处理并搜索该节,但是文件的写入方式使其很难获得整行从谈话发生时。

以下是日志文档的一部分


KAREN B:这是肖恩昨天的电子邮件istoonday@email.com SHAWN K:您也可以致电435-567-6545 CASSIE R给我打电话:或者他的办公室就在尼克斯旁边NICK W:不再有nerf镜头了@SHAWN K当他在我办公室或您正在向IT人员解释下一次屏幕更换时KAREN B:获胜者将获得700美元的“无难感”


这是更容易阅读的部分之一

我希望它看起来像

KAREN B:这是肖恩昨天的电子邮件ististday@email.com

KAREN B:获胜者获得700美元的“无难感”

KAREN B:************************************************ ******************************************************

这是我现在正在尝试的方法,但似乎可以通过列表,并且出于某种原因仅给出了一个

        If Selection.Text Like "*:*" Then
            colonPos = InStr(Selection.Text, ":")
            If Left(Selection.Text, colonPos) = Format(Left(Selection.Text, colonPos), ">") Then
                newSection = True
                Selection.SetRange Selection.Start, Selection.Start + colonPos
                Selection.Font.Bold = True
                Selection.InsertBefore vbCrLf
                Selection.GoToNext wdGoToLine
                Selection.Expand wdLine

                If lastSectionStart > 0 Then
                    Selection.SetRange lastSectionStart, Selection.Start
                    If CheckSectionFilter(Selection.Text, sectionFilter) Then
                        If Not CheckContentFilter(Selection.Text, contentFilter) Then
                            Selection.Delete
                            'Selection.GoToNext wdGoToLine
                        Else
                            Selection.SetRange Selection.End, Selection.End
                            lastSectionStart = Selection.Start
                        End If
                    Else
                        Selection.Delete
                        'Selection.GoToNext wdGoToLine
                    End If
                    Selection.Expand wdLine

                Else
                    lastSectionStart = Selection.Start
                End If

0 个答案:

没有答案