我有一个宏代码,基本上创建了一些表,然后在某些文本中键入一些,然后放置一些文本占位符 . 当我尝试将样式应用于文本时出现问题 . 起初我以为只有占位符不受代码影响 . 但似乎宏的选择的常规文本也不适用 .
代码基本上如下所示:
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")
为什么会这样?我的宏安全设置设置为默认介质,但我选择当然打开模板后启用宏 . 当我打开模板本身以及双击它以基于模板创建新文档时,会发生这种情况 . 有任何想法吗?
编辑:除了应用样式之外,宏的每一部分都有效 . 运行应用样式的代码,文本不会更改 . 当我选择文本来检查其中的样式时,我可以看到该样式已应用 . 但它不是在同一时间 . 奇怪的是,如果我选择文本,然后手动重新应用样式,意味着,点击已经选择的相同样式,然后我看到样式真的应用了 .
这就像风格在没有实际应用的情况下被设置 .
2 回答
首先,您必须帮助我们完成代码并进行设置 . 我假设您至少有一个六乘二的表,其中选择单元格6,1(底部,左侧单元格) . 其次,不要让我们猜测变量是什么;使用Dim语句 . 第三,我们没有你的风格,所以我将它们改为标准的Normal.dot .
话虽如此,您的代码可以正常工作如下 . 我能看到的唯一错误是你在最后一部分使用了ExperienceStyle,在第一部分使用了EnterpriseStyle . 如果任何一个不存在,您将收到错误 .
我认为你的问题是你在应用新Style之前没有清除格式 . 尝试这样做并告诉我们它是否有效