EP03. “Convert to Proper Case 转换成首字母大写”
🔒 登录后可标记已读- 写一个宏,把选中范围里的文字都转成「每个单字首字母大写、其余小写」的格式
- 处理时会跳过含有公式的单元格,不去动它,避免破坏原有公式
- 前置知识:For Each 循环和
cell.HasFormula判断 - 学完能自己写「批量转换选中范围格式,同时跳过公式格」的宏
重点内容
适用版本
桌面版通用(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 函数,把文字转成首字母大写格式
学完你会
- ✅ 用
Selection拿到使用者当前选中的范围 - ✅ 用
For Each...Next逐格处理一个 Range - ✅ 用
cell.HasFormula判断该跳过哪些单元格,保护公式不被覆盖
常见错误
- 漏掉
If Not cell.HasFormula判断,把含公式的单元格也直接覆盖成文字,公式被破坏 - 选取范围时选到了标题行,标题文字的大小写也被意外改掉
- 以为
WorksheetFunction.Proper可以处理整个范围,实际上要靠循环逐格调用
Sources
Blog / Website: