首页 > 解决方案 > VBA:如何使用 vbProperCase 将第一个字母大写但保持其他所有字母不变?

问题描述

我在用户窗体中有一个文本框,它连接到工作表中包含数据的列,然后当在文本框中输入内容时返回列表框中的项目。我只想立即在文本框中输入内容,而不是在开头使用 Shift+字母来大写第一个字母,这就是我使用 vbProperCase 的原因。问题是,它做了它的工作,它将第一个字母大写并保持所有其他字母小,但是我有单词在文本本身中也有大写字母,例如。AirCon、PC 等。所以我的问题是,我怎样才能做到只有第一个字母大写,但保持其他所有字母完整,它是如何写在工作表中的?

标签: excelvba

解决方案


StrConv 没有设置来仅更改某些字母,仅更改全部或不更改大写字母,或者您尝试过的正确(加上您在这里不感兴趣的转换)(文档),但是您自己很容易。

例如,当在工作表的代码中输入时,以下内容将首字母大写,其余部分保持原样:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim text As String
    text = Target.Value
    Target.Value = UCase(Left(text, 1)) + Mid(text, 2, Len(text))
End Sub

您可以根据具体情况在表单验证或连接的单元格上使用相同的原则。


推荐阅读