前景提要
昨天分享了一些数字的中文大小写的转换之后,也是收到了不少的反馈,大家都觉得这个方法非常的实用,我自己也是非常的开心,毕竟我分享的东西还是能够帮助到大家的,同时也有不少的人私信问我,既然数字可以批量切换成中文大小写,那么有没有将英文转换大小写的方法呢?
在我们的日常工作中,经常需要碰到需要输入英文的情况,不过按照我们中国人的习惯,输入汉字还可以,输入全英文就有点麻烦了,而且有些还有各种不同的要求,要么首字母大写,要么首字母小写,或者全部大小,全部小写,碰到这些情况,VBA是否有方法帮助我们快速进行转换呢?
其实还真的有,日常工作中需要面对不少的外资企业,有相关经历的童鞋一定非常的清楚,那个英文名字或者是公司名字,都是常常的一溜,我对着资料敲到电脑上就已经很费力了,可是老板还要求一定要全部转换成大写!为什么?因为这样专业啊,没办法老板的要求我们就要满足,不然怎么吃饭啊,可是一个字母一个字母的改成大写,要浪费不少的时间,而且我核对也好困难啊,既然VBA这么厉害,能实现这个功能嘛?
函数说明
要实现英文大小写的转化,也不难,上次我们分享数字转换成为中文大小写的时候,是通过一个简单的函数解决的,现在英文大小写的转化我们也可以通过函数来解决,请看
···vb
Ucase (字符串全部转换大写)
Lcase(字符串全部转换小写
相关的使用说明都已经详细的备注在后面了,我们还是通过一个实际使用案例来展示下效果吧。
> 上代码
```vb
Sub test()
Dim rng As Range
For Each rng In Selection
rng.Offset(0, 1) = LCase(rng.Value)
rng.Offset(0, 2) = UCase(rng.Value)
Next rng
End Sub
效果如图:
我已经准备好了一些各种比较复杂的英文场景,有中英结合的,有英文数字结合的,有大小写一起出现的,反正在这个moment,我能想到的组合我都写上去了
还是和上一次一样的方式,将英文大写,英文小写一起转化输出,这样就可以对比效果和代码的编写方式,方便大家学习参考。
代码执行完毕,非常完美,成功的英文转化成为来我们需要的效果,而其他的诸如数字,中文等并没有收到任何的影响,是不是so good 啊。
代码解析
感觉代码也没有什么需要解析的了,和上一次分享的几乎差不多,换了一个知识点而已,大家只需要记住这两种用法就可以了。 不如我们延伸下,假设我们要将某文件夹内的文件全部名字换成英文大写,综合我们之前学过的文件夹的遍历,选择窗体等知识,我们在复习下
Sub test()
Dim FileName$, OldNames$, NewName$
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "请选择要转换中文大小写的文件的文件夹"
If .Show = -1 Then
FileName = Dir(.SelectedItems(1) & "\")
Do While FileName <> ""
OldName = Split(FileName, "\")(UBound(Split(FileName, "\")))
NewName = UCase(OldName)
Name (.SelectedItems(1) & "\" & FileName) As (.SelectedItems(1) & "\" & NewName)
FileName = Dir()
Loop
End If
End With
End Sub
效果如下图,成功的某文件夹下所有英文切换成为了大写状态了。