有没有比循环浏览文档段落更快的方法?



完全新手。我使用 Pandoc 创建了一个 Word 文档,但阿拉伯语输出需要一些修改。浏览在线文档和帖子,我得到了以下代码:

Sub pandoc_RTL()
'
' pandoc_RTL Macro
'
'
Dim objPara As Paragraph
For Each objPara In ActiveDocument.Paragraphs
If objPara.Style = "body AR" Then
objPara.Range.Select            
Selection.RtlRun
Selection.RtlPara
End If
If objPara.Style = "hadith AR" Then
objPara.Range.Select
Selection.RtlRun
Selection.RtlPara
End If
If objPara.Style = "hadith in-list AR" Then
objPara.Range.Select
Selection.RtlRun
Selection.RtlPara
End If
If objPara.Style = "athar AR" Then
objPara.Range.Select
Selection.RtlRun
Selection.RtlPara
End If
If objPara.Style = "body AR" Then
objPara.Range.Select
Selection.RtlRun
Selection.RtlPara
End If
Next
End Sub

我的问题:

  1. 正则表达式是避免重复的唯一方法,因为所有必需的样式都以"AR"结尾?
  2. 除了遍历所有段落之外,有没有更快的方法来做到这一点?

您只需要修改样式。此功能的单选按钮可通过已启用 RTL 语言的任何文档中的"管理样式>修改>格式>段落>缩进和间距"访问。无论如何,使用 VBA:

Dim i As Long, ArrStl
ArrStl = Array("body AR", "hadith AR", "hadith in-list AR", "athar AR")
For i = 0 To UBound(ArrStl)
ActiveDocument.Styles(ArrStl(i)).ParagraphFormat.ReadingOrder = wdReadingOrderRtl
Next

做。

最新更新