Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 如何设置一个单词的样式而不改变整个段落的样式?_Vba_Ms Word_Word Style - Fatal编程技术网

Vba 如何设置一个单词的样式而不改变整个段落的样式?

Vba 如何设置一个单词的样式而不改变整个段落的样式?,vba,ms-word,word-style,Vba,Ms Word,Word Style,我试图创建一个宏,根据文档中所有单词的当前样式,逐个更改它们的样式,如实际样式名称、字体大小和名称 我的问题是,当我改变第一个单词的风格时,它会改变整个段落的风格,这是非常不必要的 'Loop trough all words For Each w In p.Range.Words ... ... 'Switch based on the style of the word Select Case r Case "b" w.Style = ActiveDocument

我试图创建一个宏,根据文档中所有单词的当前样式,逐个更改它们的样式,如实际样式名称、字体大小和名称

我的问题是,当我改变第一个单词的风格时,它会改变整个段落的风格,这是非常不必要的

'Loop trough all words
For Each w In p.Range.Words
...

...

'Switch based on the style of the word
Select Case r
    Case "b"
        w.Style = ActiveDocument.Styles("NewStyleB")
      ...
CharacterStyle属性是只读的,但是当我使用下面的代码时,只有word应用了样式,这是应该的,但是它没有将样式保留在其样式属性或其字符样式属性中,这非常重要,因此我不知道该怎么做

'Loop trough all words
For Each w In p.Range.Words
...

...

'Switch based on the style of the word
Select Case r
    Case "b"
        w.CharacterStyle = ActiveDocument.Styles("NewStyleB")
      ...
这个词很少有意义。检查您的样式是否为段落样式,如果是,则可以将其复制到新样式并将其更改为字符样式

Word几乎没有什么功能。检查您的样式是否为段落样式,如果是,则可以将其复制到新样式并将其更改为字符样式

NewStyleB需要是字符样式(或链接样式)。然后可以设置
Word
对象的
Style
属性:
w.Style=“NewStyleB”
NewStyleB需要是字符样式(或链接样式)。然后可以设置
Word
对象的
Style
属性:
w.Style=“NewStyleB”