Я видел this post, но я не мог изменить свой скрипт VBA для презентации PPT. Почти каждый слайд имеет текст в текстовом поле. Однако в конце некоторых текстовых полей есть несколько разрывов строк в конце (Enter hits), около 1-3 в некоторых местах. Я хотел бы иметь макрос, чтобы удалить эти незавершенные разрывы строк. Скажи мне, что я делаю неправильно здесь (2 скриптов):Удалить разрыв строки в Powerpoint VBA
Sub RemoveSpaces(osh As Shape)
Dim oSl As Slide
Dim osh As Shape
With ActivePresentation
For Each oSl In .Slides
For Each osh In oSl.Shapes
With osh
If .HasTextFrame Then
If .TextFrame.HasText Then
If Right$(osh.TextFrame.TextRange.Characters(osh.TextFrame.TextRange.Length, 2)) = vbCrLf Then
osh.TextFrame.TextRange.Text = Left$(osh.TextFrame.TextRange.Text, Len(osh.TextFrame.TextRange.Text) - 2)
End If
End If
End If
End With
Next
Next
End With
End Sub
и
Sub RemoveSpaces()
Dim oSl As Slide
Dim osh As Shape
With ActivePresentation
For Each oSl In .Slides
For Each osh In oSl.Shapes
With osh
If .HasTextFrame Then
If .TextFrame.HasText Then
If osh.TextFrame.TextRange.Characters(osh.TextFrame.TextRange.Length - 2, 2).Text = vbCrLf Then
osh.TextFrame.TextRange.Characters(osh.TextFrame.TextRange.Length - 2, 2).Delete
End If
End If
End If
End With
Next
Next
End With
End Sub
По какой-то причине этот скрипт работает только частично. В некоторых местах он удаляет все лишние пробелы, а в других - нет. Когда я копирую текст в ближайшее окно, я вижу, что эти пробелы подписаны с «мужским знаком». Может быть, какое-то условие вроде «является буквенно-цифровым» или TRIM (characters.length -1,1) .text = «» будет работать? –