目录
1 EXCEL里改变大小写的内置函数
2.1 转换大小写的函数
2.2 神奇的把数字和中文大小写转换的函数
2 VBA里改变大小写的内置函数
2.1 改变大小写 的内置函数
2.2 使用 excel的WorksheetFunction. text() 函数
3 如果想交换字母的大小写呢?
3.1 ASCII码里的大写字母和小写字母
3.2 怎么把字符串string 像数组一样切片呢?
3.3 VBA的 字符转ASCII码和 ASCII转字符的两个函数
3.4 自定义函数,大小写互换 test_tran1(a)
1 EXCEL里改变大小写的内置函数
2.1 转换大小写的函数
- upper() '全部改大写
- lower() '全部改小写
- proper() '首字母大写
- code() 'excel里查看字母asc码的函数
2.2 神奇的把数字和中文大小写转换的函数
- NUMBERSTRING()
- 参数只可选1,2,3
- NUMBERSTRING(A8,1) ' 转成小写汉字,且是数量单位
- NUMBERSTRING(A8,2) ' 转成大写汉字,且是数量单位
- NUMBERSTRING(A8,3) ' 转成小写汉字
2 VBA里改变大小写的内置函数
2.1 改变大小写 的内置函数
- UCase() '所有小写改大写
- lCase() '所有大写改小写
- VBA里,使用 worksheetfuction.upper() worksheetfuction.lower() 是不行的
2.2 使用 excel的WorksheetFunction. text() 函数
- WorksheetFunction.Text(rng.Text, "[DBNum1]")
- WorksheetFunction.Text(rng.Text, "[DBNum2]")
3 如果想交换字母的大小写呢?
目标:如果想大小写互换:也就是把大写字母改成小写,而小写字母改成大写,怎么做?
先理清思路
- 搞清楚大写字母和小写字母的区别
- 如何逐个从字符串数组里取每个字符?
- 如何转化单个字符,且放回去?
3.1 ASCII码里的大写字母和小写字母
- 搞清楚大写字母和小写字母的区别
- 在 ASCII码里,大写字母和小写字母可以对应位不同区间段的数字
- 大写字母A-Z, 65-90
- 小写字母a-z, 97-122
- 因此只要判断了这个字符的acsii码值,就知道其是大写还是小写!
3.2 怎么把字符串string 像数组一样切片呢?
- python可以 string[1] 这样取
- 但是vba里不行
- 但是其实用 mid(string, i ,1 ) 也可以取每个字符
3.3 VBA的 字符转ASCII码和 ASCII转字符的两个函数
- chr() 'ASCII转字符
- asc() '字符转ASCII码
3.4 自定义函数,大小写互换 test_tran1(a)
- 搞清楚大写字母和小写字母的区别
- 把字符串看成一个数组,
- 如何逐个从字符串数组里取每个字符
- 如何转化单个字符,且放回去
- 取最后的结果
Function test_tran1(a)
'好像vba里字符串不能直接这样切片a[],只能用 mid()?
For i = 1 To Len(a)
'用ASC() 而不是chr() 更不是WorksheetFunction.code
If Asc(Mid(a, i, 1)) >= 97 And Asc(Mid(a, i, 1)) <= 122 Then
Mid(a, i, 1) = UCase(Mid(a, i, 1)) '用这个不行worksheetfunction.upper()
ElseIf Asc(Mid(a, i, 1)) >= 65 And Asc(Mid(a, i, 1)) <= 90 Then
Mid(a, i, 1) = LCase(Mid(a, i, 1))
End If
Next
test_tran1 = a
Debug.Print a
End Function
Sub testtt1()
a = "abcABC"
test_tran1 (a)
End Sub