VBA 只读文件修改范围内的 Word 原始文本
VBA Word original text on revised range on readonly files
我正在创建一个 VBA 工具来记录(用于 QA 目的)翻译文件的修订。
我可以逐段阅读原文和修改后的文字。
但我 运行 每次无法写入文件(由其他人打开或未正确关闭)时都会遇到问题。
由于宏会 运行 很长时间,所以这是一个问题。我可以解决这个问题,但我的客户可能无法遵循该程序。
有没有办法只读原文而不修改文件?
真觉得应该有办法。我搜索了一种方法来将范围复制到一个虚拟对象中,然后对那个新的范围进行反向修订,但没有这样的运气。
我真的只是在做
set wrdApp=CreateObject("Word.Application")
set wrdDoc=wrdApp.Documents.Open(filePath)
for each par in wrdDoc.Paragraphs
if par.Range.Revisions.Count <> 0 then
dim original, revised as String
revised=par.Range.Text
par.Range.Revisions.RejectAll
original=par.Range.Text
ProcessRevision original, revised
End if
next
谢谢!
自己回答,归根结底是做不到。我 运行 遇到了其他一些问题,在拒绝修改后不得不撤消更改,但除非我有写权限,否则我还是做不到。
我确保文件未在某处打开的解决方案是在阅读之前复制文件。
很郁闷,一个清晰的读操作(获取原文)需要写权限
如果我找到其他解决方案,我一定会post这里。
我正在创建一个 VBA 工具来记录(用于 QA 目的)翻译文件的修订。
我可以逐段阅读原文和修改后的文字。
但我 运行 每次无法写入文件(由其他人打开或未正确关闭)时都会遇到问题。
由于宏会 运行 很长时间,所以这是一个问题。我可以解决这个问题,但我的客户可能无法遵循该程序。
有没有办法只读原文而不修改文件?
真觉得应该有办法。我搜索了一种方法来将范围复制到一个虚拟对象中,然后对那个新的范围进行反向修订,但没有这样的运气。
我真的只是在做
set wrdApp=CreateObject("Word.Application")
set wrdDoc=wrdApp.Documents.Open(filePath)
for each par in wrdDoc.Paragraphs
if par.Range.Revisions.Count <> 0 then
dim original, revised as String
revised=par.Range.Text
par.Range.Revisions.RejectAll
original=par.Range.Text
ProcessRevision original, revised
End if
next
谢谢!
自己回答,归根结底是做不到。我 运行 遇到了其他一些问题,在拒绝修改后不得不撤消更改,但除非我有写权限,否则我还是做不到。
我确保文件未在某处打开的解决方案是在阅读之前复制文件。
很郁闷,一个清晰的读操作(获取原文)需要写权限
如果我找到其他解决方案,我一定会post这里。