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

Excel 将字符串中的特定单词转换为大写,excel,vba,Excel,Vba,我正在使用Excel 2010,需要一个宏来将字符串中的特定单词更改为大写。e、 g.目前,所有污水管道均由人力资源开发部所有,而非城市所有。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 Th

我正在使用Excel 2010,需要一个宏来将字符串中的特定单词更改为大写。e、 g.目前,所有污水管道均由人力资源开发部所有,而非城市所有。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

有什么建议吗?

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

将文本变暗为字符串

text=所有当前的污水管道均归hrsd所有,而非城市所有

text=Replacetext、hrsd、UCasehrsd

或仅使用Range.Replace方法


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

导航到选项>校对>自动更正选项 在“替换类型hrsd”下和“替换为类型hrsd”下,然后单击 添加
注意:自动更正是特定于计算机的,因此它将修复计算机上的工作簿。但是如果有人想在他们的计算机上执行相同的操作,他们需要更改他们的设置。

总是同一个词吗?
Range("H2:H3000").Replace What:="hrsd", Replacement:="HRSD", LookAt:=xlPart