我有一项艰巨的任务,即纠正已翻译的书籍索引的页码,因此该索引上每个项目的出现的参考指向了错误的页码。
所以基本上我想制作一个VBA宏来搜索书中索引中的每个词,然后找出它们出现在哪里的页码,最后更新索引。
我想知道的是两件事:
您认为使用VBA是一个不错的选择还是耗时?如果您认为这不是一个坏主意,我如何获得确定单词的页码?
是否还有其他更好的方法可以使用Python来实现相同的结果,我感觉更舒服?
答案 0 :(得分:0)
"页数"根据字体大小,纸张大小,行间距,边距等等,在文档中会有很大差异,因此在Word中尝试这种方法最多是不可靠的。请记住这一点。
请参阅this explanation及随后的评论:
Q值。我想循环浏览Word文档和每个页面中的所有页面。我该怎么做?
一个。你不能。 Word不是页面布局软件。它是一个文字处理器。它将文本视为滚动。每个文档都是一个长文本卷。
您可以与Find
方法一起使用的一个hack,但需要注意可靠性当然:
Sub findpage()
Dim p As Long 'page number
Dim rngFound As Find
Dim searchText As String
searchText = "some text you want to find"
Set rngFound = ActiveDocument.Range.Find
rngFound.Text = searchText
rngFound.Execute
If rngFound.Found Then
p = rngFound.Parent.Information(wdActiveEndPageNumber)
Else
'not found
End If
MsgBox searchText & " found on page " & p
End Sub
实际上,为了您的目的,您必须调整此项,我只向您展示方法,您可以使用它来获取文档中特定搜索字词的页码。
VBA或Python(或某些TBD语言)的选择是你自己和你自己做的。