Ser etter matchende Parent

March 16  by Eliza

Med mindre du skriver veldig korte dokumenter, kan rydde opp være en av de vanskeligste delene av skriftlig. Følgende makro dobbelt-sjekker dokumentet, avsnitt for avsnitt, for å fastslå om du har et balansert antall parentes. Makroen teller antall venstre parentes i hvert avsnitt i dokumentet og gjør at du har samme antall rette parenteser. Hvis du ikke gjør det, setter makroen et avsnitt før den ubalanserte avsnitt indikerer feilen.

Sub CheckParens ()
Dim WorkPara As String
Dim CheckP () Som boolsk
Dim NumPara As Integer, J As Integer
Dim LeftParens As Integer, RightParens As Integer
Dim MsgText As String

NumPara = ActiveDocument.Paragraphs.Count
ReDim CheckP (NumPara)

MsgText = "*** Ubalanserte parentesar i neste avsnitt"
For J = 1 Til NumPara
CheckP (J) = False
WorkPara = ActiveDocument.Paragraphs (J) .Range.Text
Hvis Len (WorkPara) <> 0 Then
LeftParens = CountChars (WorkPara, "(")
RightParens = CountChars (WorkPara, ")")
Hvis LeftParens <> RightParens Deretter CheckP (J) = sant
End If
Neste J

For J = NumPara Til en Step -1
Hvis CheckP (J) Deretter
Selection.HomeKey Enhet: = wdStory, Extend: = wdMove
Hvis J> 1 Deretter
Selection.MoveDown Enhet: = wdParagraph, _
Count: = (J - 1), Extend: = wdMove
End If
Selection.InsertParagraphBefore
Selection.MoveLeft Enhet: = wdCharacter, Count: = 1
Selection.Style = "Normal"
Selection.TypeText Tekst: = MsgText
End If
Neste J
End Sub

Private Funksjons CountChars (A As String, C As String) As Integer
Dim Count As Integer
Dim Funnet As Integer

Telle = 0
Funnet = InStr (A, C)
Mens Funnet <> 0
Telle = Count + 1
Funnet = InStr (Funnet + 1, A, C)
Wend
CountChars = Count
End Function

Merk at det er faktisk to makroer her. Den CountChars funksjonen kalles fra hoved CheckParens makro. Det er denne siste makro (CheckParens) som er den du bør faktisk påberope på dokumentet. Når makroen er ferdig, kan du søke gjennom dokumentet, på jakt etter ordlyden "*** Ubalanserte parentesar" for å se hvor du kan ha problemer.

WordTips er din kilde for kostnadseffektiv Microsoft Word trening. (Microsoft Word er den mest populære tekstbehandlingsprogrammet i verden.) Dette tipset (1308) gjelder for Microsoft Word 97, 2000, 2002, og 2003. Du kan finne en versjon av dette tipset for Båndet av Word (Word 2007 og senere) her: Ser etter matchende parenteser.