MS Word 宏在 Mac 上将文档中每个单词的第一个字母大写 我尝试的一切“都会使 Word 崩溃”

问题描述 投票:0回答:1

我试图将文档中每个单词的第一个字母大写,并将单词的其余部分保留为驼峰式命名法。

举个例子:

单词示例

成为

Word示例

我尝试了以下代码的许多不同变体(这是最简单的一种),但每一种变体都会使我的 Mac 上的 MS Word 实例崩溃。 我运行的是 Word 16.87,macOS 是 14.5 任何帮助将不胜感激。提前致谢。 - 国际消费电子展

Sub CapitalizeFirstLetterOnly()
 
    Dim doc As Document
    Dim word As Range
    Dim firstLetter As String
    Dim restOfWord As String
 
    Set doc = ActiveDocument
 
    For Each word In doc.words
 
        firstLetter = UCase(Left(word.Text, 1))
        restOfWord = Mid(word.Text, 2)
 
        word.Text = firstLetter & restOfWord
 
    Next word
   
End Sub
vba macos ms-word
1个回答
0
投票

首先,避免使用

Word
作为变量名。

然后无需修改文本,只需使用

.Case
属性即可。

For Each w In ActiveDocument.Words
  w.Case = wdTitleWord
Next
© www.soinside.com 2019 - 2024. All rights reserved.