【发布时间】:2020-06-21 16:53:45
【问题描述】:
所以我有列表,其中每行中的一个单元格将包含一个段落或多个段落。我需要将这些标准化,以便它们在句子中。我已经构建了一些代码来执行此操作,如果只有一个段落,它就可以工作,但是当单元格中有多个段落或换行符时,它无法将第一个字母大写。我尝试使用换行符本身作为变量进行查找和替换,但这不起作用,我被卡住了。
我的大部分代码都将整个选定范围转换为 Lcase,然后进行一系列查找和替换,以使每个句子的第一个字母大写。
Selection.Replace What:=". a", Replacement:=". A"
我浏览了整个字母表,而不是用“!a”和“~?a”再做一遍
但如果前一段和新段落之间有换行符,则此技术将不起作用。
完成后,我使用范围选择将每个单元格中的第一个字母大写,但我不确定这有多相关。
For Each cell In RNG
cell.Value = UCase(Left(cell.Value, 1)) & Right(cell.Value, Len(cell.Value) - 1)
Next cell
再次感谢 Scott Craner 的回答!
Selection.Replace What:=Chr(10) & "A"
这解决了我的问题!
【问题讨论】:
-
你试过
StrConv(string,vbProperCase)吗? -
请用 Excel 单元格中的“段落”定义您理解的内容。该特定单元格上的新行?按Alt+Enter后获得?
-
What:= Chr(10) & "a" -
斯科特·克兰纳,这成功了!非常感谢!
标签: excel vba replace capitalization capitalize