重点内容
适用版本
桌面版通用(Excel 365 / 2021 / 2019 等)。
完整代码
Dim rng As Range, cell As Range
Set rng = Selection
For Each cell In rng
If Not cell.HasFormula Then
cell.Value = WorksheetFunction.Proper(cell.Value)
End If
Next cell逻辑说明
Set rng = Selection:把使用者目前选中的范围存起来For Each cell In rng:逐一走过范围里的每个单元格If Not cell.HasFormula Then:只处理「不是公式」的单元格——如果这格本身是公式算出来的结果,直接跳过不动它,避免把公式改写成写死的文字WorksheetFunction.Proper(cell.Value):调用 Excel 的 PROPER 函数,把文字转成首字母大写格式
学完你会
常见错误
- 漏掉
If Not cell.HasFormula判断,把含公式的单元格也直接覆盖成文字,公式被破坏 - 选取范围时选到了标题行,标题文字的大小写也被意外改掉
- 以为
WorksheetFunction.Proper可以处理整个范围,实际上要靠循环逐格调用
Sources
Blog / Website: