【发布时间】:2020-09-08 08:46:52
【问题描述】:
我正在尝试在 Word VBA 中使用带有 if then 语句的 for next 循环。该代码的目的是,如果Word文档的段落不为空,它将选择文本并将其复制并粘贴到新的Word文档中。如果该段落为空,它将直接转到下一行。
我试过运行代码,每次只能选择整个Word文档中的第一段,我不确定如何让代码运行并继续下一段创建循环。
Sub selectparawithtext()
Dim opara As Paragraphs
Dim x As Integer
For x = 1 To 24
If Paragraphs <> "" Then
Selection.Expand wdParagraph
Selection.Copy
Documents.Add wdNewBlankDocument
Selection.PasteAndFormat (wdFormatOriginalFormatting)
Else
Selection.MoveDown Unit:=wdLine, Count:=1
End If
Next
End Sub
【问题讨论】:
-
你为什么这样循环?为什么不使用循环
For Each pgraph In ActiveDocument.Paragraphs,然后使用If Len(Trim(pgraph.Range.Text))=0 Then -
您的代码,如果有效,会将每个非空段落放入一个单独的新文档中。你确定这是你想要发生的事情吗?
-
你有两个问题。 1.如前所述,您不了解对象模型这个词。
标签: vba for-loop if-statement word