VBA实现数据库中的字段处理(下划线去掉,后面的字母变大写)之 Home » 编程开发 » VBA实现数据库中的字段处理(下划线去掉,后面的字母变大写)之 1.0版本中有两个问题,现在已经修正了 ‘履历’2010/10/23(周六)下午第一版做成’2010/10/26(周二)晚上,对于两个问题进行了修改(1不含有下划线的情况,2开头字母不应大写)’版权所属:孙学智 2010/10/23Private Sub underLine_Click()’版权所属:孙学智 2010/10/23 ‘数据库中的列名 Dim dbColumnStr As String ‘开始的位置,由横竖坐标确认 Dim index As Integer Dim rangeStr ‘行(横) index = 6 ‘列(竖) rangeStr = "B" ‘生成单元个位置,这里没有自动装箱,所以要用一个函数把数字转换一下 rangeStr = rangeStr + CStr(index) ‘单元个位置生成正确与否,测试用 ‘MsgBox rangeStr ‘判断不为空,注意这里要用""空串,而不能使用null,null时永远false Do While Sheet1.Range(rangeStr).Value <> "" ‘进入循环测试用 ‘MsgBox rangeStr ‘Excel中的数据(数据库中的列名) dbColumnStr = Sheet1.Range(rangeStr).Value ‘调用对数据库中列明处理的函数 Call underLineEscape_upcase(dbColumnStr) ‘处理之后位置,稍微往右移动一下 rangeStr = "C" ‘通过横竖两个坐标,组合出生成的位置 rangeStr = rangeStr + CStr(index) ‘输出处理之后的数据 Sheet1.Range(rangeStr).Value = dbColumnStr ‘读取下一个数据 index = index + 1 ‘源数据的位置还要变回来 rangeStr = "B" ‘通过横竖两个坐标,组合出源数据的位置 rangeStr = rangeStr + CStr(index) Loop MsgBox "end"’版权所属:孙学智 2010/10/23End Sub ‘发现下划线,去掉,得到以下划线分割的字符串 (不知道是否有java中split的功能)Sub underLineEscape_upcase(ByRef dbColumnStr As String)’版权所属:孙学智 2010/10/23 ‘存放分割后组合的字符串 Dim str As String ‘存放每一个分割的字符串 Dim splitStr As String ‘初始化一下 str = "" ‘在VBA中,字符串索引从1开始 Dim index ‘如果返回的不是0,就表明查到数据了,则继续循环 Dim flag ‘初始化开始位置 index = 1 ‘初始化flag flag = 1 ‘获取字符串长度 length = Len(dbColumnStr) ‘获取第一个"_"的位置,不在循环里面 index = InStr(index, dbColumnStr, "_") ‘20100206 修改 (原因1:当不含有"_"的情况),直接在循环最后一步,会把受str的值付给dbColumnStr,而str的初值是"" If index = 0 Then str = dbColumnStr ‘20100206 修改 (原因1:当不含有"_"的情况) 添加条件 And index <> 0 当不含下划线时,便不会进入循环,之前忘记以对flag的初值设为1,不能再用flag判断 ‘当没有找到 flag=0,或 超过长度时,退出循环 Do While (flag <> 0 And index <= length And index <> 0) ‘获取字符串中"_"的位置 index = InStr(index, dbColumnStr, "_") ‘如果最后一次没有查到那么index=0,而之前还查到了(一次也没有的情况不会进入循环), ‘这时flag中,保存的还是是上一个"_"的位置,但是由于下面的判断flag不等于一时会加一 ‘所以,这里还要加一,否则最后一个串会少一个长度 If index = 0 Then index = length + 1 ‘如果是从找到"_"的位置开始需要加1,因为flag存的是"_"的位置 If flag <> 1 Then flag = flag + 1 ‘获取字符串,以"_"分割 splitStr = Mid(dbColumnStr, flag, index – flag) ‘20100206 修改 (原因2:开始的第一个字母大写了),增加判断条件,当第一次时,不调用字母转换函数(不将取得串的第一个字母变为大写) ‘20100206 修改 (原因2:开始的第一个字母大写了),因为flag代表开始的位置,flag=1表明是第一个 ‘20100206 修改 (原因2:开始的第一个字母大写了),注意这里Call好像不能换行(中间再隔一行干注释),否则编译出错,不知道为什么?反正现在好用了! ‘把第一个字母变成大写 If flag <> 1 Then Call firstCharToUpcase(splitStr) ‘测试时使用 ‘MsgBox splitStr ‘把每一个分割后并且转换为大写的字符串组合起来 str = str + splitStr ‘因为有0的判断,所以不能加1。同时在上面还有使用,这样就不用再定义一个临时变量存index了 flag = index ‘改变下一个索引开始的位置,也就是"_"之后那个字母的索引 index = index + 1 Loop ‘分割后的字符串,因为是应用传值,这里就相当于return dbColumnStr = str ‘版权所属:孙学智 2010/10/23End Sub ‘把字符串中的第一个字母变成大写 Sub firstCharToUpcase(ByRef str As String) ‘版权所属:孙学智 2010/10/23 Dim tempStr Dim length ‘获取长度 length = Len(str) ‘为了保留小写部分,使用后两位 tempStr = str ‘使用转换为大写的第一位 str = StrConv(str, vbUpperCase) ‘把第一位和后两位拼接起来 str = Mid(str, 1, 1) + Mid(tempStr, 2, length) ‘版权所属:孙学智 2010/10/23 End Sub 我不敢说我可以忘却,或者勇敢,坚强,等等等等一切堂皇而陈旧的字眼。 相关文章: Tweetable Mathematical Art 太极八卦图 如何针对自己的需要修改caffe的网络(Python) (旧)子数涵数·VB——变量 用VBA宏从一个工作薄复制内容到另一个工作薄 在VBA中调用AUTOCAD打印文件 请问如果用VBA编程获取影像的灰度值,怎么过滤掉那些栅格是nodat VBA实现随意输入组合码,查询唯一标识码 尝试了一下写Excel宏的VBA脚本 备忘:一个自己写过的简单的EXCEL VBA程序 VBA中给变量赋值使用set和不使用set的区别 – eclipse 你感兴趣的文章: 如果速卖通的访客量上不去,应该怎么处理?如何查看访客数据? u014664226的专栏 miui6新功能曝光:将集成免费网络语音功能 IIS 5,6,7差别 硬盘光驱跳线设置方法[很详细的解说] ipad air2可以打电话吗?苹果ipad air2能不能打电话? 标签云: 亚洲高清电影在线, 免费高清电影, 八戒影院夜间, 八戒电影最新大片, 出轨在线电影, 午夜电影院, 在线影院a1166, 在线电影院, 在线观看美剧下载, 日本爱情电影, 日韩高清电影在线, 电影天堂网, 直播盒子app, 聚合直播, 高清美剧, 高清美剧在线观看 EhViewer-E站, E站, E站绿色版, qqmulu.com, qq目录网, qq网站目录,