ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: yuanzhuping

VBA常用技巧代码解析

    [复制链接]

TA的精华主题

TA的得分主题

发表于 2009-5-21 23:49 | 显示全部楼层
本帖已被收录到知识树中,索引项:开发帮助和教程
thank you very much!!!

TA的精华主题

TA的得分主题

发表于 2009-5-22 01:00 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
偶像,经典,慢慢学习

TA的精华主题

TA的得分主题

发表于 2009-5-22 01:08 | 显示全部楼层
各位谁有有关VBA实例的视频教材啊!
发给我看看!

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-5-22 07:11 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

第9部分 函数的使用

技巧158         使用字符串函数
       使用VBA的字符串函数可以对字符串进行各种操作,如下面的代码所示。
  1. #001  Sub StrFunctions()
  2. #002      Dim Str As String
  3. #003      Str = "AbcD EFG hijk Lmn"
  4. #004      MsgBox "原始字符串为:" & Str & Chr(13) _
  5. #005          & "字符串长度为:" & Len(Str) & Chr(13) _
  6. #006          & "左边8个字符为:" & Left(Str, 8) & Chr(13) _
  7. #007          & "右边6个字符为:" & Right(Str, 6) & Chr(13) _
  8. #008          & "从左边第2个开始取5个字符为:" & Mid(Str, 2, 5) & Chr(13) _
  9. #009          & "转换为大写:" & UCase(Str) & Chr(13) _
  10. #010          & "转换为小写:" & LCase(Str) & Chr(13)
  11. #011  End Sub
复制代码
代码解析:
       StrFunctions过程使用字符串函数对字符串进行各种操作,如计算字符数、取得一定数量的字符、大小写转换等。
       第5行代码使用Len函数返回字符串内字符的数目,Len函数语法如下:
       Len(string | varname)
       参数string为任何有效的字符串表达式。
       参数varname为任何有效的变量名称。
       两个可能的参数必须有一个,而且只能有一个参数。
       第6行代码使用Left函数从字符串左边起返回8个字符。
       第7行代码使用Right函数从字符串右边起返回6个字符
       Left函数语法如下:
Left(string, length)
       Right函数语法如下:
Right(string, length)
       参数string是必需的,字符串表达式。
       参数length是必需的,数值表达式,将返回的字符数量。如果为0,返回零长度字符串 ("");如果大于或等于参数string的字符数,则返回整个字符串。
       第8行代码使用Mid函数从字符串第2位起返回5个字符。Mid函数语法如下:
Mid(string, start[, length])
       参数string是必需的,字符串表达式。
       参数start是必需的,string中被取出部分的字符位置。如果超过string的字符数,将返回零长度字符串 ("")。
       参数length是可选的,要返回的字符数。如果省略或超过string的字符数,将返回字符串中所有字符。
       第9行代码使用UCase函数将字符串转换成大写的字符串。
       第10行代码使用LCase函数将字符串转换成小写的字符串。
       UCase函数的语法如下:
       UCase(string)
        LCase函数的语法如下:
       LCase(string)
       参数string是必需的,任何有效的字符串表达式。
       运行StrFunctions过程结果如图所示。
       Snap1.jpg

技巧158 使用字符串函数.rar

8.04 KB, 下载次数: 746

TA的精华主题

TA的得分主题

发表于 2009-5-22 08:39 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-5-22 09:38 | 显示全部楼层
这套技巧出书发行了吗,出书吧

TA的精华主题

TA的得分主题

发表于 2009-5-22 09:52 | 显示全部楼层
很有用的资料。非常感谢!!!

TA的精华主题

TA的得分主题

发表于 2009-5-22 10:05 | 显示全部楼层
感谢
尊敬的袁老师:您好!
   您为了贡献于人类,花费您大量地时间与精力,实在难能可贵;
   您为了我们这些EXCEL VBA菜鸟们,不辞辛劳,实在令人敬佩;
   在这里,本人由衷地感谢您的功绩!谢谢!谢谢!谢谢~~~~~~

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-5-22 10:19 | 显示全部楼层

第9部分 函数的使用

技巧159         使用日期函数
       使用VBA的日期函数可以对日期进行各种计算,如下面的代码所示。
  1. #001  Sub DatFunctions()
  2. #002      Dim Str As String
  3. #003      Dim Week As String
  4. #004      Str = InputBox("请输入日期:")
  5. #005      If Len(Str) > 0 Then
  6. #006          If IsDate(Str) Then
  7. #007              Select Case Weekday(Str, vbMonday)
  8. #008                  Case 1
  9. #009                      Week = "一"
  10. #010                  Case 2
  11. #011                      Week = "二"
  12. #012                  Case 3
  13. #013                      Week = "三"
  14. #014                  Case 4
  15. #015                      Week = "四"
  16. #016                  Case 5
  17. #017                      Week = "五"
  18. #018                  Case 6
  19. #019                      Week = "六"
  20. #020                  Case 7
  21. #021                      Week = "日"
  22. #022              End Select
  23. #023              MsgBox "你输入的日期是" & DateValue(Str) & Chr(13) _
  24. #024                  & "是" & Year(Str) & "年的第" & DatePart("q", Str) & "季度" & Chr(13) _
  25. #025                  & "是星期" & Week & Chr(13) _
  26. #026                  & "距离今天有" & Abs(DateDiff("d", Date, Str)) & "天" & Chr(13) _
  27. #027                  & "60天后的日期是" & DateAdd("d", 60, Str)
  28. #028          Else
  29. #029              MsgBox "请输入正确格式的日期!"
  30. #030          End If
  31. #031      End If
  32. #032  End Sub
复制代码
代码解析:
       DatFunctions过程在对话框中输入日期后使用各种日期函数对其进行计算并用消息框显示。
       第4、5行代码使用InputBox函数显示一个对话框,供用户在对话框中输入一个日期。
       第6行代码使用IsDate函数判断输入的日期是否正确。IsDate函数返回Boolean值,指出一个表达式是否可以转换成日期,语法如下:
       IsDate(expression)
       参数expression是必需的,日期表达式或字符串表达式,如果表达式是一个日期,或者可以作为有效日期识别,则IsDate函数返回True,否则返回False。
       第7行到第22行代码使用Weekday函数判断所输入的日期是星期几。Weekday函数返回一个整数,代表某个日期是星期几,语法如下:
       Weekday(date, [firstdayofweek])
       参数date是必需的,能够表示日期的 Variant、数值表达式、字符串表达式或它们的组合。
       参数firstdayofweek是可选的,指定一星期第一天的常数,如表格所示。
       Snap1.jpg
       Weekday函数返回一个1到7之间的整数,当firstdayofweek参数设置为vbMonday(2)时,返回1时说明是星期一,以此类推。
       第23行代码根据系统中指定的短日期格式来显示所输入的日期。DateValue函数的语法如下:
       DateValue(date)
       参数date是必需的,任何表达式,表示从 100 年 1 月 1 日到 9999 年 12 月 31 日之间的一个日期。如果是一个字符串,且其内容只有数字以及分隔数字的日期分隔符,则 DateValue函数就会根据系统中指定的短日期格式来识别月、日、年的顺序。DateValue函数也识别明确的英文月份名称,全名或缩写均可。例如,除了12/30/1991 和12/30/91 之外,DateValue函数也能识别December 30, 1991 和Dec 30, 1991。
       如果date参数中略去了年这一部分,DateValue函数就会使用由计算机系统日期设置的当前年份。
       第24行代码判断输入的日期的季度。DatePart函数返回一个包含已知日期的指定时间部分的值,语法如下:
       DatePart(interval, date[,firstdayofweek[, firstweekofyear]])
       其中参数interval是必需的,字符串表达式,是要返回的时间间隔,设定值如表格所示。
       Snap2.jpg
       第26行代码计算所输入的日期距当天的天数。DateDiff函数返回两个指定日期间的时间间隔数目,语法如下:
       DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
       其中参数interval是必需的,字符串表达式,表示用来计算date1和date2的时间差的时间间隔,设定值如以上表格 所示。
       参数date1和date2是必需的,计算中要用到的两个日期。
       因为如果输入的日期是当前日期以前的日期,DateDiff函数会返回负值,所以使用Abs函数返回绝对值将其转换为正值。
       第27行代码计算所输入的日期距当天的天数,DateAdd返回加上了一段时间间隔的一个日期,语法如下:
       DateAdd(interval, number, date)
       参数interval是必需的,字符串表达式,是所要加上去的时间间隔,设定值如以上表格所示。
       参数number是必需的,是要加上的时间间隔的数目。其数值可以为正数(得到未来的日期),也可以为负数(得到过去的日期)。
       参数date是必需的,需要加上时间间隔的字符串表达式。
       运行DatFunctions过程,在显示的对话框中输入一个日期,结果如图所示。
       Snap22.jpg

技巧159 使用日期函数.rar

9.49 KB, 下载次数: 796

TA的精华主题

TA的得分主题

发表于 2009-5-22 10:39 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-25 01:54 , Processed in 0.052159 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表