嗨,我有以下提及的代码,它设置了第二段的缩进级别。我对这段代码有两个问题。
- 当选择多个段落时,缩进仅对选定的最后一段起作用。
无法使用此代码设置边距。因为我想合并“文本前 1.2”和“特殊悬挂 0.46 厘米”
Sub selectedLevel() Dim otr2 As TextRange2 ' 假设占位符已被选中 Set otr2 = ActiveWindow.Selection.ShapeRange(1).TextFrame2.TextRange.Paragraphs(GetPara) With otr2.ParagraphFormat .IndentLevel = 2 End With End Sub
函数 GetPara() 只要 Dim lngStart 只要 Dim oshp 作为形状 Dim L 只要出现错误则继续下一步 lngStart = ActiveWindow.Selection.TextRange.Start 如果 Err.Number <> 0 则退出函数结束如果出现错误则转到 0 设置 oshp = ActiveWindow.Selection.ShapeRange(1) 如果 (oshp.HasTextFrame) 则对于 L = 1 到 oshp.TextFrame2.TextRange.Paragraphs.Count 如果 (oshp.TextFrame2.TextRange.Paragraphs(L).Start <= lngStart) 并且 ((oshp.TextFrame2.TextRange.Paragraphs(L).Start + oshp.TextFrame2.TextRange.Paragraphs(L).Length - 1) >= lngStart) 则 GetPara = L 退出函数结束如果下一步 L 结束如果结束函数
请帮助我定制此代码并运行子程序。
谢谢
答案1
你好,我已经解决了有关保证金的第一个问题。
但是当我选择多个段落时,所有段落都不会缩进
下面的代码用于设置预定义的 MARGIN
Sub selectedLevel()
Dim otr2 As TextRange2
Set otr2 = ActiveWindow.Selection.ShapeRange(1).TextFrame2.TextRange.Paragraphs(GetPara)
With otr2.ParagraphFormat
.LeftIndent = 0.9 * 39
.FirstLineIndent = -(0.5 * 29)
End With
End Sub
Function GetPara() As Long
Dim lngStart As Long
Dim oshp As Shape
Dim L As Long
On Error Resume Next
lngStart = ActiveWindow.Selection.TextRange.Start
If err.Number <> 0 Then
Exit Function
End If
On Error GoTo 0
Set oshp = ActiveWindow.Selection.ShapeRange(1)
If (oshp.HasTextFrame) Then
For L = 1 To oshp.TextFrame2.TextRange.Paragraphs.Count
If (oshp.TextFrame2.TextRange.Paragraphs(L).Start <= lngStart) And
((oshp.TextFrame2.TextRange.Paragraphs(L).Start +
oshp.TextFrame2.TextRange.Paragraphs(L).Length - 1) >= lngStart) Then
GetPara = L
Exit Function
End If
Next L
End If
End Function
请帮助我在所有段落中应用这个子程序。