当我尝试在修订对象中更改某些样式(例如textcolor)时,我得到了Run-Time error '5852'
(请求的对象不可用)。我用过ActiveDocument.Revisions(i).Style
...其他属性可用(作者,创建者,类型等)。顺便说一句:我真的想从修订版中更改样式(而不是普通文本)。在Word 2010和2016中进行了测试
编辑:更加详细:
我尝试更改所显示修订的颜色。 Word默认情况下自动设置它。但是您无法选择Word分配给审阅者的颜色(See this link)
不幸的是,这正是我想要做的。因此,我在VBA上进行了尝试,实际上revision object可以使用属性样式,但是我得到的error 5852
与ActiveDocument.Revisions(i).Style
Sub test()
i = 1
While i <= ActiveDocument.Revisions.Count
Debug.Print "Revision " & i & " Author: " & ActiveDocument.Revisions(i).Author 'works
Debug.Print "Revision " & i & " Creator: " & ActiveDocument.Revisions(i).Creator 'works
Debug.Print "Revision " & i & " Date: " & ActiveDocument.Revisions(i).Date 'works
Debug.Print "Revision " & i & " FormatDescription: " & ActiveDocument.Revisions(i).FormatDescription 'works...
Debug.Print "Revision " & i & " Range: " & ActiveDocument.Revisions(i).Range 'work
Debug.Print "Revision " & i & " Style: " & ActiveDocument.Revisions(i).Style 'error 5852
Debug.Print "Revision " & i & " Type: " & ActiveDocument.Revisions(i).Type 'works
i = i + 1
Wend
End Sub
有人知道为什么会发生此错误吗?
答案 0 :(得分:0)
正如您所说,不可能为每个作者显式设置修订的颜色。 不可能是不可能的。
我认为Revisions.Style
不是 ,用于更改修订版的外观(颜色或其他内容)。我相信这是要返回Style
信息,例如样式的名称和各种属性(类似于Range.Style
的属性)。错误是因为Word尚未记录此类信息,可能是因为它无法识别相关的样式类型...
有两个相关的(?)Revision.Type
枚举:wdRevisionStyle
和wdRevisionStyleDefinition
。在快速测试中-使用样式进行格式化,创建样式并更改样式定义-我无法返回这两个修订类型中的任何一个。但是根据《语言参考》,它们的意思是:
wdRevisionStyle 8样式已更改。
wdRevisionStyleDefinition 13样式定义已更改。
在我的测试中,为应用样式而返回的修订版本类型为wdRevisionParagraphProperty
,并且更改样式定义未记录为修订版本。
为了让Revision.Style
返回信息,我相信您需要测试Revision.Type
是否为上述任何一个,只有这样,Revision.Style
中才会有一个有效的对象。
我正在查看Word 2010。