VBA从Excel获取Word文档中样式的所有出现

皮埃尔

对于我的工作,我必须在40个单词的文档(.doc)中找到样式的所有实例。收到文字后,我想将其写入Excel工作表(.xls)的单元格中。

使用我编写的代码,我可以获取该样式的第一个实例,但不能获取下一个实例,它进入无限循环,现在我不知道为什么了(每个文件中约有10个实例)。

你能告诉我我哪里错了吗?

我想从那开始:在运行宏之前到:在运行宏之后

这是我的代码:

'==================================================================
' Declarations
'==================================================================

Dim ObjWord As Object ' Word application object

'==================================================================
' Macro
'==================================================================

Public Sub Macro()

Dim row As Integer
row = 9 'first available row

Set ObjWord = CreateObject("word.application")

Worksheets("Sheet 2").Activate

While (Cells(row, 2).Value <> "End of file list")

    Set file = ObjWord.documents.Open(ThisWorkbook.path & ".\" & Cells(row, 1).Hyperlinks(1).Address)


    Set currentRange = file.Range

    currentRange.Find.ClearFormatting
    currentRange.Find.Forward = True
    currentRange.Find.Text = ""
    currentRange.Find.Style = "MyStyle"
    bFind = currentRange.Find.Execute

    Do While bFind 'here is the endless loop
         row = row + 1
         StyleValue= currentRange.Text 'I get stuck with the first value :-(
         Rows(row).EntireRow.Insert
         Cells(row, 2).Value = StyleValue
         bFind = currentRange.Find.Execute
    Loop

    file.Close

    row = row + 1 ' next File
Wend

ObjWord.Quit
End Sub
加里·埃文斯(Gary Evans)

为了使它对我有用,我必须进行一些更改,这主要是因为我Option Explicit启用了并声明了所有变量。

但是,在进行遍历时,如果它在第一个查找上循环,则可能是一个问题,那就是您必须将所选内容移到查找之后才能找到下一个。

Do While bFind 'here is the endless loop
    row = row + 1
    StyleValue= currentRange.Text 'I get stuck with the first value :-(
    Rows(row).EntireRow.Insert
    Cells(row, 2).Value = StyleValue

    currentRange.SetRange currentRange.End, currentRange.End

    bFind = currentRange.Find.Execute
Loop 

如果那不起作用,我稍后可以弹出一个完整的替换项

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

替换Word文档中的所有标题样式

VBA Word-反向遍历文档中的所有段落

在VBA中获取Word文档的索引条目

如何使用Aspose.Word获取Word文档中的所有卸载图像

在Excel中获取打开的Word文档的名称

如何替换文件夹中Word文档中所有出现的字符串

使用VBA在文件夹中的所有文档中查找和替换MS Word文本

以编程方式计算Excel文档中某列中的所有值出现多少次

如何在 MS Word 中使用 VBA 选择文档中的所有数学方程?

使用Perl脚本在ms-word文件中获取所有普通样式

有没有办法使用Apache Tika从文档文件中获取所有样式?

如何从Word文档中获取所有与通配符匹配的字符串

获取集合CosmosDb中的所有文档

在QueryDocumentSnapshot中获取集合的所有文档

我想使用VBA将所有文本从MS Word文档复制到MS Excel,其中Excel列出了文档及其位置

在word文档中查找和替换excel vba中的文本

设置整个Word文档的字体样式-VBA

文档样式表使用伪选择器获取元素上的所有样式

Excel VBA 在 Word 文档表中居中内容

在Word文档中从Excel VBA插入换行符

PHP 在单行中获取所有出现

无法使WholeStory使用Excel VBA选择Word Doc中的所有文本并设置其格式

Excel VBA将特定文件夹中的所有Word文件转换为PDF

使用VBA将所有段落转换为Word文档中的表格后,如何重新分配缩进?

删除所有文档中出现的 DocumentTermMatrix 中的术语

使用Python接受MS Word文档中的所有更改

宏以更新Word文档中的所有字段

如何在Word文档中查找所有域代码?

在Word文档中将列表中的所有级别增加1