使用VBA将首字母大写

时间:2017-10-23 09:51:06

标签: excel vba excel-vba

如何使用VBA格式化Excel工作表中的单词,使首字母大写后跟每个单词中的小写字母? 我知道大写和小写的代码,但是格式化整个单词,包括相同的第一个字母。 如果你觉得这个问题很愚蠢,那我就不好了,但正如我对VBA的新手一样,如果有人能提供帮助,我只是好奇。 提前谢谢你......

3 个答案:

答案 0 :(得分:6)

PROPER功能应该有所帮助。有关详细信息,请参阅this

使用VBA

Sub Demo()
    Dim ws As Worksheet
    Dim rng As Range, cel As Range
    Dim lastRow As Long

    Set ws = ThisWorkbook.Sheets("Sheet3")  'change Sheet3 to data sheet
    With ws
        lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
        For Each cel In .Range("A1:A" & lastRow)
            cel.Offset(0, 1).Value = Application.Proper(cel.Value)
        Next
    End With
End Sub

使用公式

=PROPER(A1)

enter image description here

答案 1 :(得分:0)

这称为正确案例。您可以使用以下行将单元格值转换为正确的大小写:

YourCell.Value = StrConv(YourCell.Value, vbProperCase)

答案 2 :(得分:0)

此答案是Google在此问题上排名最高的Stack Overflow-

“ vba代码将单词的首字母大写”

此代码在Windows 10上的Office 365 Excel中有效

Public Function fnProperCase(sWord As String) As String
    fnProperCase = StrConv(sWord, vbProperCase)
End Function

这是我测试的输出(请注意第5行)

Excel with test data in col 1, =fnProperCase in col 2 and =PROPER in col 3

我在Stack Overflow和其他地方查看了其他各种答案

StrConv

https://support.office.com/en-ie/article/strconv-function-19c3816f-dbc9-4adf-891c-fd32734c92e0

在不更改当前大写字母的情况下首字母大写

Capitalise first letter of words without changing currently Capitalised

使错误的代码看起来不正确

https://www.joelonsoftware.com/2005/05/11/making-wrong-code-look-wrong/