【发布时间】:2020-09-09 17:29:38
【问题描述】:
如何使用 VBA 格式化 Excel 表格中的单词,使每个单词的首字母大写后跟小写字母?
【问题讨论】:
如何使用 VBA 格式化 Excel 表格中的单词,使每个单词的首字母大写后跟小写字母?
【问题讨论】:
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)
【讨论】:
Cells(i + 1, 2).Value 使用 Application.Proper (Cells(i + 1, 2).Value)
Application.Proper 尝试WorksheetFunction.Proper。
这个答案是这个问题在 Google Stack Overflow 上的热门回答:
"vba 代码将单词首字母大写"
此代码适用于 Windows 10 上的 Office 365 Excel:
Public Function fnProperCase(sWord As String) As String
fnProperCase = StrConv(sWord, vbProperCase)
End Function
Here是带有测试服的Excel;第 5 行具有所有三个输出; 测试数据在第 1 列,=fnProperCase() 在第 2 列,=PROPER() 在第 3 列
以下是有关 Stack Overflow 和其他地方的各种其他答案:
Capitalise first letter of words without changing currently Capitalised
【讨论】:
这称为正确案例。您可以使用以下行将单元格值转换为正确的大小写:
YourCell.Value = StrConv(YourCell.Value, vbProperCase)
【讨论】: