此代码用于查找和替换文本列表以进行质量检查
sub FindAndReplace()
Dim Pres As Presentation
Dim sld As Slide
Dim shp As Shape
For Each Pres In Application.Presentations
For Each sld In Pres.Slides
For Each shp In sld.Shapes
Call checklist(shp)
Next shp
Next sld
Next Pres
MsgBox "Completed Succesfully!"
End Sub
Sub checklist(shp As Object)
Dim txtRng As TextRange
Dim rngFound As TextRange
Dim I, K, X As Long
Dim iRows As Integer
Dim iCols As Integer
Dim TargetList, DestinationList
TargetList = Array(" ", " ", " ", " ", " ", " ", " ", " / ", "i.e. ", "e.g. ", "/ ", " /", " :", " ;", " .", " ,", " - ", "resume", "a.m.", "p.m.", ":00")
DestinationList = Array(" ", " ", " ", " ", " ", " ", " ", "/", "i.e., ", "e.g., ", "/", "/", ":", ";", ".", ",", " – ", "résumé", "am", "")
With shp
If shp.HasTable Then
For iRows = 1 To shp.Table.Rows.Count
For iCols = 1 To shp.Table.Rows(iRows).Cells.Count
Set txtRng = shp.Table.Rows(iRows).Cells(iCols).Shape.TextFrame.TextRange
For I = 0 To UBound(TargetList)
Set rngFound = txtRng.Replace(TargetList(I), DestinationList(I))
Do While Not rngFound Is Nothing
Set rngFound = txtRng.Replace(TargetList(I), DestinationList(I), After:=rngFound.Start + rngFound.Length, wholewords:=True)
Loop
Next
Next
Next
End If
End With
Select Case shp.Type
Case msoGroup
For X = 1 To shp.GroupItems.Count
Call checklist(shp.GroupItems(X))
Next X
Case 21
For X = 1 To shp.Diagram.Nodes.Count
Call checklist(shp.GroupItems(X))
Next X
Case Else
If shp.HasTextFrame Then
If shp.TextFrame.HasText Then
Set txtRng = shp.TextFrame.TextRange
For I = 0 To UBound(TargetList)
Set rngFound = txtRng.Replace(TargetList(I), DestinationList(I))
Do While Not rngFound Is Nothing
Set rngFound = txtRng.Replace(TargetList(I), DestinationList(I), After:=rngFound.Start + rngFound.Length, wholewords:=True)
Loop
Next
End If
End If
End Select
End Sub
我收到此代码的运行时 9 错误。
此外,此代码仅替换某些单词的第一次出现,例如“ie”和“eg:,但我想替换所有出现的地方。