无论是在工作表中,还是VBA编程中,经常需要使用英文字母大小写转换功能。Excel函数中提供了UPPER,LOWER,PROPER三个函数,VBA中提供了UCASE,LCASE两个函数,为什么还要开发类似功能的自定义函数?这并不是重新发明轮子,而是要制造一个功能更完善的轮子也许是一个喷气发动机。
例如:对于这个句子this is a dog from USA.,希望转换为单词首字母大写,并且对于专有名称缩写USA保持大写。工作表函数PROPER的转换结果为This Is A Dog From Usa.,并不能很好的实现这个需求。借助Shape对象的文本处理功能可以实现功能丰富的大小写转换。
示例代码如下。

Public Function fnStrCase(ByVal strLine As String, _Optional intMode As Integer = 4) As StringOn Error Resume NextIf intMode < 1 Or intMode > 5 ThenfnStrCase = "#Err#"ElseWith ActiveSheet.Shapes.AddShape(msoShapeRectangle, 0, 0, 0, 0)With .TextFrame2.TextRange.Text = strLine.ChangeCase (intMode)fnStrCase = .TextEnd With.DeleteEnd WithEnd IfOn Error GoTo 0
End Function

工作表中示例数据如下。

A2单元格为原始内容,intMode参数是MsoTextChangeCase 枚举,取整范围1~5,其含义如下。

【代码解析】
第3行代码忽略运行时错误。
第4行代码判断,intMode参数的范围,如果不合规,则返回#Err#
第7行代码添加一个矩形框,并将大小设置为0,这样就不会影响用户的Excel界面。
第9行代码将需要转换的字符串赋值给Shape对象的Text属性。
第10行代码调用ChangeState方法,转换方式由intMode参数指定。
第11行代码读取转换后的字符串。
第13行代码删除创建的矩形框。
第16行代码恢复系统的错误处理机制。


借助Excel内置对象的法可以非常完美的实现一些需求,比使用基础的字符串函数逐个字符进行判断和处理更简洁高效。

随心所欲大小写转换自定义函数相关推荐

  1. FastReport 金额大小写转换自定义函数

    在FastReport中编写金额数字转换大写自定义函数 function MoneyToCharacter(Money:real):string; //数字转换为中文大写 var     temp:s ...

  2. oracle十进制函数语法,Oracle 十进制、二进制互相转换自定义函数

    Oracle 十进制.二进制相互转换自定义函数 create or replace function number_2_bit(v_num number) return varchar is v_rt ...

  3. [转]Delphi 12种大小写转换的方法

    ----------第一种方法---------- function TPrintfrm.NumToChar(n: Real): wideString; //可以到万亿,并可随便扩大 const cN ...

  4. Hive自定义函数(字母大小写转换)

    自定义Hive的函数,首先需要继承UDF类,然后定义方法名字为evaluate的方法,该方法不能设置void,如果需要返回为空,可以返回为null. 一个简单的大小写转换案例 特别注意看注释 pack ...

  5. c大小写转换函数_字符处理——大小写转换编程思路扩展

    1.简单实现 前面我们实现了首字母大写.转换大写.转换小写3个功能,如果再实现一个大小写互换,有了前面的基础,实现起来应该没什么大问题: Function FUpperLowerSwap(str As ...

  6. php 清除英文字母,PHP英文字母大小写转换函数小结

    PHP英文字母大小写转换函数小结 发布于 2015-01-23 10:54:41 | 143 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext Pr ...

  7. php 英文小写变大写,PHP英文字母大小写转换函数

    例1,每个单词的首字母转换为大写:ucwords() 复制代码 代码示例: $foo = 'hello world!'; $foo = ucwords($foo);             // He ...

  8. R语言大小写转换函数(tolower, toupper, casefold,chartr)实战

    R语言大小写转换函数(tolower, toupper, casefold,chartr)实战 目录 R语言大小写转换函数(tolower, toupper, casefold,chartr)实战 # ...

  9. c大小写转换函数_Excel中的大小写金额转换,技巧法和函数法,职场必学技巧

    财务工作中,经常需要将小写的数字,转换成大写的数字,有两种方法轻松解决,技巧法以及函数法. 小写转大写技巧法 我们选中单元格,然后右键,设置单元格格式(快捷键是CTRL+1),在弹出的设置单元格格式窗 ...

最新文章

  1. mysql 分区表优化_Sql优化之Mysql表分区
  2. 发布在即!.NET Core 1.0 RC2已准备就绪
  3. 让我们用jOOλ在Java 8中流式传输地图
  4. LeetCode 1025. 除数博弈(动态规划)
  5. linux下tcpdump的使用简介
  6. node.js中获取请求当前页的前一页URL地址
  7. POJ 3597 Polygon Division (DP)
  8. 数据集:102 flower、Cratech256、ImageNet数据集下载
  9. 10款精选的后台管理系统,收藏吧!
  10. 单片机仿真器和烧写器的区别
  11. 小米路由器r1d刷第三方_小米R1D路由器刷Advacned Tomato V3.4-140固件
  12. Vue实战之 5.用户管理模块
  13. 一看就会 PicGo+gitee+Tyora个人图库搭建
  14. #GeekPoint# 苹果的 AR 眼镜
  15. 杠杆炒股为什么会被强制平仓?
  16. BIM+GIS技术突破!百公里公路设计数据+TB级地形模型不再是难题!
  17. JDBC Statement RETURN_GENERATED_KEYS返回自动生成的ID
  18. 人事管理系统哪个好用?人事管理系统推荐!
  19. H5网页播放器EasyPlayer.js如何实现直播视频实时录像?
  20. python开发ps插件_你还在用PS?Python 20行代码批量抠图

热门文章

  1. html的常用标签,系列篇
  2. linux硬盘挂载-新硬盘挂载和扩容硬盘挂载
  3. Web前端工程师怎么样呢?薪资待遇如何呢?
  4. grid布局看这一篇就够了
  5. refers to an unmapped class
  6. 网站制作中关于版权声明的写法
  7. 给大家科普一下阿里的职级
  8. 清华大学网上课程面向全国免费开放!无需登录、注册!在家上清华!
  9. 旋转矩阵,矩阵,共轭矩阵
  10. java ios 3des加密,iOS 3DES加密 和 java 3DES 解密