gpt4 book ai didi

vba - Word 2007 vba - 样式不是通过宏应用的

转载 作者:行者123 更新时间:2023-12-04 06:49:14 25 4
gpt4 key购买 nike

我有一个宏代码,它基本上创建了一些表格,然后在其中一些中输入一些文本,然后放置一些文本占位符。当我尝试将样式应用于文本时出现问题。起初我以为只有占位符不受代码影响。但似乎宏选择的常规文本也没有应用。

代码基本上是这样的:

Selection.TypeText Text:="Entreprisecost:"
Selection.MoveRight Unit:=wdCell
Set cc = Selection.Range.ContentControls.Add(wdContentControlText)
cc.SetPlaceholderText Text:="Description of the cost"
cc.DefaultTextStyle = "EnterpriseStyle"
Selection.Style = ActiveDocument.Styles("EnterpriseStyle")

请注意我是如何在占位符和选择上定义样式的。

接下来,我尝试录制一个简单的宏,在其中选择整行,然后将样式应用于选择。这在我录制时有效。但是当我运行宏时它不起作用。真奇怪:
Selection.MoveUp Unit:=wdLine, Count:=5, Extend:=wdExtend
Selection.Style = ActiveDocument.Styles("ExperienceStyle")

为什么会这样?我的宏安全设置设置为默认介质,但我当然选择在打开模板后启用宏。当我打开模板本身以及双击它以基于模板创建新文档时,就会发生这种情况。有任何想法吗?

编辑:除了应用样式外,宏的每一点都有效。运行应用样式的代码,文本不会改变。当我选择文本以检查其样式时,我可以看到该样式已应用。但它不是同时的。奇怪,如果我选择文本,然后手动重新应用样式,意思是,单击已经选择的相同样式,然后我看到该样式确实被应用了。

就像在没有实际应用的情况下设置样式一样。

最佳答案

首先,您必须帮助我们编写代码并进行设置。我假设您至少有一个 6 x 2 的表格,在单元格 6,1(底部,左侧单元格)中进行了选择。其次,不要让我们猜测变量是什么;使用 Dim 语句。第三,我们没有您的样式,所以我将它们更改为标准的 Normal.dot 样式。

话虽如此,您的代码可以正常工作,如下所示。我能看到的唯一错误是您在最后一部分中使用了 ExperienceStyle,在第一部分中使用了 EnterpriseStyle。如果其中任何一个都不存在,您将收到错误消息。

Public Sub Test()
Selection.TypeText Text:="Entreprisecost:"
Selection.MoveRight Unit:=wdCell

Dim cc As ContentControl
Set cc = Selection.Range.ContentControls.Add(wdContentControlText)
cc.SetPlaceholderText Text:="Description of the cost"
cc.DefaultTextStyle = "Title"
Selection.Style = ActiveDocument.Styles("Title")
Selection.Style = ActiveDocument.Styles("Strong") 'Proof the style is being changed.

Selection.MoveUp Unit:=wdLine, Count:=5, Extend:=wdExtend
Selection.Style = ActiveDocument.Styles("Strong")
End Sub

关于vba - Word 2007 vba - 样式不是通过宏应用的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3355008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com