将字符串中的特定单词转换为大写

时间:2015-10-21 12:29:00

标签: excel excel-vba vba

我正在使用Excel 2010,并且需要一个将字符串中的特定单词更改为大写的宏。例如in"所有现有的污水管都归hrsd所有,而不是城市。" hrsd必须为大写HRSD

以下宏适用于单个单词,但不适用于字符串:

If Target.Cells.Count > 1 Or Target.HasFormula Then Exit Sub

On Error Resume Next
If Not Intersect(Target, Range("H2:H3000")) Is Nothing Then
    Application.EnableEvents = False
    Target = UCase(Target)
    Application.EnableEvents = True
End If
On Error GoTo 0

有什么建议吗?

3 个答案:

答案 0 :(得分:0)

您可以使用VBA的Replace函数将部分字符串切换为大写值。例如:

Dim text As String

text = "All current sewer pipe is owned by hrsd and not the city."

text = Replace(text, "hrsd", UCase("hrsd"))

答案 1 :(得分:0)

或者只使用Range.Replace方法。

Range("H2:H3000").Replace What:="hrsd", Replacement:="HRSD", LookAt:=xlPart

答案 2 :(得分:0)

非宏解决方案是使用自动修正将hrsd更改为HRSD。这会在每次缩写出现时解决问题。

  1. 导航至选项>校对>自动更正选项
  2. 在"替换"键入hrsd和"使用"键入HRSD,然后单击 添加
  3. 注意:自动更正是特定于计算机的,因此它将修复计算机上的工作簿。但如果有人想在他们的计算机上进行相同的操作,则需要更改他们的设置。