大写首字母串

时间:2014-12-27 16:37:00

标签: vba excel-vba excel

我正在尝试将数组sent中的第一个字母字符串arr大写。代码中不起作用的部分是Right函数,它会导致代码返回错误。可能有什么问题?

For Each sent In arr
    sent = UCase(Left(sent, 1)) & Right(sent, Len(sent) - 1)
    arr(i) = sent
    i = i + 1
Next

3 个答案:

答案 0 :(得分:20)

您可以使用StrConv()功能。例如:

For i = LBound(arr) To UBound(arr)
   sent = arr(i)
   arr(i) = StrConv(sent, vbProperCase)
Next

或没有循环:

arr = Split(StrConv(Join$(arr, " "), vbProperCase), " ")

答案 1 :(得分:8)

使用Mid函数在字母大写后构建所有内容会更容易。此功能并不要求您指定全长:

For i = LBound(arr) To UBound(arr)
    sent = arr(i)
    ' Capitalize the first letter, then append everything else.
    sent = UCase(Left(sent, 1)) & Mid(sent, 2)
    arr(i) = sent
Next

此外,您可以使用arr作为您的枚举器来迭代i。使用单独的枚举器混合和匹配索引更新可能会导致麻烦。

答案 2 :(得分:0)

尝试以下方法:

NewArr As List<string> NewArr = new List<string>()

For Each sent As String In arr    
    NewArr.Add(Application.WorksheetFunction.Proper(sent))

Next sent

arr = NewArr.ToArray()