Vba 使用if语句运行下一个循环时出现问题
我试图在Word VBA中使用带有if then语句的for next循环。该代码的目的是,如果Word文档的段落不是空的,它将选择文本并将其复制并粘贴到新的Word文档中。如果段落为空,它将转到下一行 我试着运行代码,每次,它只能选择整个Word文档中的第一段,我不确定如何让代码运行并继续到下一段创建循环Vba 使用if语句运行下一个循环时出现问题,vba,for-loop,if-statement,word,Vba,For Loop,If Statement,Word,我试图在Word VBA中使用带有if then语句的for next循环。该代码的目的是,如果Word文档的段落不是空的,它将选择文本并将其复制并粘贴到新的Word文档中。如果段落为空,它将转到下一行 我试着运行代码,每次,它只能选择整个Word文档中的第一段,我不确定如何让代码运行并继续到下一段创建循环 Sub selectparawithtext() Dim opara As Paragraphs Dim x As Integer For
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
Sub-selectparawithtext()
Dim opara作为段落
作为整数的Dim x
对于x=1到24
如果是第“”段,则
选择。展开段落
选择,复制
文档。添加文档
Selection.PasteAndFormat(WDFormat原始格式)
其他的
Selection.MoveDown单位:=wdLine,计数:=1
如果结束
下一个
端接头
您有两个问题
Dim myPara As Paragraph
For Each myPara In ActiveDocument.StoryRanges(wdMainTextStory).Paragraphs
<your code>
Next
值得注意的是,“Item”是段落对象的默认属性,因此,段落(x)和段落.Item(x)似乎给出了相同的结果。为什么要这样循环?为什么不为ActiveDocument.段落中的每个pgraph使用循环
,然后使用如果Len(Trim(pgraph.Range.Text))=0,那么如果代码有效,将把每个非空段落放入一个单独的新文档中。你确定这就是你想要的吗?你有两个问题。1.如上所述,您不理解对象模型这个词。
\<document qualifier>.\<storyrange qualifier>.paragraphs.item(x).range.text.
ActiveDocument.StoryRanges(wdmaintextstory).paragraphs.item(x).range.text