Excel-165个VBA自定义函数大全_第1页
Excel-165个VBA自定义函数大全_第2页
Excel-165个VBA自定义函数大全_第3页
Excel-165个VBA自定义函数大全_第4页
Excel-165个VBA自定义函数大全_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Excel-165个VBA自定义函数大全 VBA自定义函数大全目录1函数作用返回 Column 英文字52函数作用查询某一值第num次出现的值53函数作用返回当个人工资薪金所得为2000元 起征点为850元 时的应纳个人所得税税额64函数作用从形如"123545ABCDE"的字符串中取出数字75函数作用从形如"ABCD12455EDF"的字符串中取出数字76函数作用按SplitType取得RangeName串值中的起始位置87函数作用将金额数字转成中文大写98函数作用计算某种税金149函数作用人民币大小写转换1410函数作用查汉字区位码1611函数作用把

2、公元年转为农历1712函数作用返回指定列数的列标3813函数作用用指定字符替换某字符3914函数作用从右边开始查找指定字符在字符串中的位置3915函数作用从右边开始查找指定字符在字符串中的位置4016函数作用计算工龄4017函数作用计算日期差除去星期六星期日4118函数作用将英文字反转的自定函数4219函数作用计算个人所得税4220函数作用一个能计算是否有重复单元的函数4321数字金额转中文大写4422函数作用将数字转成英文4523函数作用人民币大小写转换4824函数作用获取区域颜色值4925函数作用获取活开工作表名4926函数作用获取最后一行行数4927函数作用判断是否连接在线5028函数作

3、用币种转换5029函数作用检验工作表是否有可打印内容5130函数作用查找一字符串 withinstr 在另一字符串中 findstr1 中某一次 startnum 出现时的位置返回零表示没找到5331函数作用增加文件路径最后的符号5432函数作用计算所得税5433函数作用从工作表第一行的标题文字以数字形式返回所在列号5434函数作用在多个工作表中查找一个范围内符合某个指定条件的工程对应指定范围加总求和5535函数作用返回 Column 英文字5636函数作用查找指定列名的列数5637函数作用文字格式的时间 分秒 转化为数字格式 秒 5738函数作用将"hhmmss"格式的时

4、分秒数转换成秒数5739函数作用金额中文大写转数字5840函数作用把角度转为度秒分弧度等显示5941函数作用身份证号码侦测6042函数作用显示公式6143函数作用方便财务人员理帐查找6244函数作用数值转换为字符地址6445函数作用字符地址转换为数值6546函数作用等待时间以秒计算6547函数作用得到字符串实际的长度以单字节记6648函数作用18位身份证最后一位有效性验证6649函数作用计算符合maturity condition的拆解金额6750函数作用对多个用同一分隔符分隔的待查找元素逐一在表区域首列内搜索将返回选定单元格的值相加6851函数作用根据个人所得税工资反算工资数6952函数作用

5、判断表是否存在7053函数作用角度转弧7054函数作用比拟相同的字符串7155函数作用对选定的数组进行排序7156函数作用取得指定月份天数7357函数作用排序工作表活页薄7358函数作用统计数组中非重复数据个数7459函数作用摘取子字符串7460函数作用计算20000余个汉字的笔画7561函数作用删除当前工作表中的全部超连接7662函数作用取得相近数据7663函数作用提取定串中汉字7764函数作用搜索重复数据 选定范围 7765函数作用字符型转数字型7866函数作用小写人民币转大写人民币7867函数作用取得指定月份人星期天个数7968函数作用侦测档案是否包含宏8069函数作用获取循环参照单元格

6、8170函数作用创立桌面快捷方式8171函数作用自动建立多级目录8272函数作用统计经筛选后符合条件的记录条数8373函数作用复制单元格列高与栏宽8374函数作用取消隐藏工作表包括vba Project工程保护的 8475函数作用删除单元格自定义名称8476函数作用从文件路径中取得文件名8477函数作用取得一个文件的扩展名8578函数作用取得一个文件的路径8579函数作用十进制转二进制8680函数作用检查一个数组是否为空8681函数作用字母栏名转数字栏名8782函数作用数字栏名转文字栏名8783函数作用判断一件活页夹中是否还有子目录8784函数作用判断一个文件是否在使用中8885函数作用列出档

7、案详细摘要信息8886函数作用获取菜单ID编号及名称列表8987函数作用状态列动态显示文字9088函数作用取得一个文件的路径29089函数作用取得一个文件的路径39090函数作用取得Activecell的栏名9191函数作用取得单元格中指定字符前的字符9192函数作用前单元格指定字符前的字符颜色改成红色9193函数作用根据数字返回对应的字母列号9294函数作用取工作表名字9295函数作用取消所有隐藏的宏表9296函数作用导出VBA Project代码9397函数作用导入VBA Project代码9398函数作用取得汉字拼音的第一个字母9399函数作用获取两栏中相同的数据96100函数作用选取当

8、前工作表中公式出错的单元格,关返回出错个数97101函数作用将工作表中最后一列作为页脚打印在每一面页尾97102函数作用获取vbproject引用工程98103函数作用移除Excel工作表中的外部数据连接98104函数作用将选择定单元格作成镜像图片99105函数作用反选择单元格中的数101106函数作用在Excel中参加一个量度尺 以厘米为单位 102107函数作用在Excel中参加一个量度尺 以寸为单位 104108函数作用取得一个短文件名的长文件名107109函数作用取得临时文件名107110函数作用等用Shell调用的程序执行完成后再执行其它程序108111函数作用将Mouse显示成动画

9、109112函数作用限制Mouse移动范围109113函数作用取得当前激活窗品句柄及标题110114函数作用取得屏幕分辨率110115函数作用自动建立多级目录111116函数作用将文件长度置零111117函数作用读取WIN9X Me共享文件夹密码112118函数作用取得预设的打印机及设置预设的打印机115119函数作用获得当前操作系统的打印机个数及检测打印是否存在115120函数作用枚举打印机名称清单116121函数作用读取网络效劳器当前时间117122函数作用下载文件到指定目录119123函数作用自动映射网络驱动器120124函数作用自动断开网络驱动器120125函数作用连接选定单元格中的内

10、容121126函数作用获取一个单元格中有指定字体颜色部份数据121127函数作用对指定文件加XLS加密122128函数作用选择指定范围内使用了填充颜色的单元格122129函数作用在特定的区域内查找文本返回值是包含查找文本的单元格123130函数作用返回特定区域中最大值的地址124131函数作用删除表格中使用范围内的所有空白单元格124132函数作用返回数组中有多少个指定的字符串125133函数作用返回当前工作表中引用了指定的单元的地址126134函数作用获取Excel中字型列表126135函数作用获取一个字符串中有多少个数字字符127136函数作用在Excel中对多列进行填充127137函数作

11、用对选定的范围进行数据填充忽略单元格格式127138函数作用VBA Project加密及解密128139函数作用列出收藏夹中的网址129140函数作用计算两个日期之间相隔的年份比方年龄工龄等可计算从1000年01月01日起的日期130141函数作用从字符串提取纯数字131142函数作用将一个数组按升序排列132143函数作用将一个数组按降序排列132144函数作用删除空白列133145函数作用判断工作表是否为空白133146函数作用将数据按类分到不同工作薄134147函数作用单元格内数据排序134148函数作用对多栏排序135149函数作用返回计算公式的值 值的计算公式136150函数作用把第

12、一列 某个值对应的第二列的内容连在一起并用隔开137151函数作用取得系统使用模式137152函数作用计算机注销关机重启138153函数作用更改计算机名称138154函数作用从n位开始取出字符串中的汉字英文字母数字139155函数作用在指定列中寻找含有指定字符串的单元格并将符合条件的单元格标为红色并将对应的下一列单元格赋值为1140156函数作用去除字符串中的空格140157函数作用查找合并单元格位置141158函数作用阴阳历转换和阴阳历生日141159函数作用利用数组和Substitute来替换某字符145160函数作用一键创立斜线表头145161函数作用自动获取指定月的工作日146正文1函

13、数作用返回 Column 英文字Function ColLetter ColNumber As Integer As String On Error GoTo Errorhandler ColLetter Left Cells 1 ColNumber Address 0 0 1 - ColNumber 26 Exit FunctionErrorhandler MsgBox "Error encountered please re-enter "End Function2函数作用查询某一值第num次出现的值 参数说明Value1查询引用的数值 Range1查询区域 num指定

14、查询第几次出现 Col返回值 相对引用区域 相对引用列的右数第Col列Function MyFind Value1 ByVal Range1 As Range ByVal num As Integer ByVal Col As Integer If Value1 "" Then Exit Function If Racomt 1 Then Exit Function For Each D In Range1 If DValue Value1 Then c c 1 If c num Then v1 D 1 Col Exit For End If ElseIf IsEmpty

15、D Then Exit For End If Next If v1 "" Then v1 "not" MyFind v1End Function3函数作用返回当个人工资薪金所得为2000元 起征点为850元 时的应纳个人所得税税额 语 法Grsds bsc mysala 参数说明bsc 必选项为起征点包括税法规定的工资基数800元加上允许税前扣除的合理费用 mysala 必选项为人个工资薪金所得 示 例Grsds 850 20000 Function Grsds bsc As Double mysala As Double As Double bsc为起

16、征点加上允许税前扣除的合理费用mysala为工资薪金所得 On Error GoTo Grsds_err Select Case mysala Case Is bsc Grsds 0 Case Is bsc 500 Grsds ApplicationWorksheetFunctionRound mysala - bsc 005 2 Case Is bsc 2000 Grsds ApplicationWorksheetFunctionRound mysala - bsc 01 - 25 2 Case Is bsc 5000 Grsds ApplicationWorksheetFunctionRo

17、und mysala - bsc 015 - 125 2 Case Is bsc 20000 Grsds ApplicationWorksheetFunctionRound mysala - bsc 02 - 375 2 Case Is bsc 40000 Grsds ApplicationWorksheetFunctionRound mysala - bsc 025 - 1375 2 Case Is bsc 60000 Grsds ApplicationWorksheetFunctionRound mysala - bsc 03 - 3375 2 Case Is bsc 80000 Grsd

18、s ApplicationWorksheetFunctionRound mysala - bsc 035 - 6375 2 Case Is bsc 100000 Grsds ApplicationWorksheetFunctionRound mysala - bsc 04 - 10375 2 Case Else Grsds ApplicationWorksheetFunctionRound mysala - bsc 045 - 15375 2 End SelectGrsds_Exit Exit FunctionGrsds_err MsgBox ErrNumber "" Er

19、rDescription Resume Grsds_ExitEnd Function4函数作用从形如"123545ABCDE"的字符串中取出数字Function myvalue mystring As String As Double myvalue Val mystring End Function5函数作用从形如"ABCD12455EDF"的字符串中取出数字Function mydata mystring As String As Double Dim i As Integer i 1 Do Until Val Mid mystring i 1 0

20、i i 1 Loop mydata Val Mid mystring i Len mystring - i 1 End Function6函数作用按SplitType取得RangeName串值中的起始位置1单元格2行号3列号4范围Public Const SINGLE_CELL 1Public Const ROW_NUM 2Public Const COL_NUM 3Public Const RANGE_ALL 4Public Function SplitRangeName RangeName As String SplitType As Integer As String If VBALen

21、 RangeName 3 Then Exit Function Else RangeName VBARight RangeName VBALen RangeName - VBAInStr 1 RangeName "" - 1 If VBAInStr 1 RangeName "" 0 Then RangeName VBALeft RangeName VBAInStr 1 RangeName "" - 1 Select Case SplitType Case SINGLE_CELL If VBAInStr 1 RangeName &quo

22、t;" 0 Then SplitRangeName "" VBALeft RangeName VBAInStr 1 RangeName "" - 1 Else SplitRangeName "" RangeName End If Case ROW_NUM SplitRangeName VBAIIf VBAInStr 1 RangeName "" 0 VBARight RangeName VBALen RangeName - VBAInStr 1 RangeName "" RangeNa

23、me If Not IsNumeric SplitRangeName Then SplitRangeName "" MsgBox "" vbInformation "" End If Case COL_NUM If VBAInStr 1 RangeName "" 0 Then SplitRangeName VBALeft RangeName VBAInStr 1 RangeName "" - 1 Else SplitRangeName RangeName End If If IsNumeric

24、SplitRangeName Then SplitRangeName "" MsgBox "" vbInformation "" End If Case RANGE_ALL SplitRangeName "" RangeName End Select End IfEnd Function7函数作用将金额数字转成中文大写Function Money Number As Currency Dim i j k m leng As Integer 计数器 Dim Zero As Integer 连续零标识 Dim Tnum

25、ber As String 储存数字字符串计算数组长度 Dim Num As String 定义数组 Dim Num1 3 As String 存储万元以下数字 Dim Num2 1 As String 储存拆分后的数字 Dim Cha 8 Cha1 9 Cha2 4 As String 储存转化后的汉字 Dim Zcha As String 连接后的字符串 Dim Flag Flag1 As Boolean 正负标志 Flag True Flag1 False Zero 0 如果大于一亿那么不处理 If Number 99999999 Or Number -99999999 Then Msg

26、Box "Sorry数据超过一亿暂不处理" MsgBox "顺便问一下你真有那么多钱吗" Money "Sorry" Else If Number 0 Then Money "零元整" Else 将负数数字转化正数并更改标识 If Number 0 Then Number Number -1 Flag False End If 小数点后超过两位那么截断 If Number - Int Number 100 - Int Number - Int Number 100 0 Then Tnumber CStr Int N

27、umber 100 100 Else Tnumber CStr Number End If 处理四舍五入 If Number - Int Number 100 - Int Number - Int Number 100 05 Then Tnumber CStr CCur Tnumber 001 End If Number CCur Tnumber 重新分配数组空间 ReDim Num Len Tnumber - 1 As String 将字符串分开存储至数组中 For i 0 To Len Tnumber - 1 Num i Mid Tnumber i 1 1 Next i 定义所需字符 Di

28、m M1 M2 M1 Array "零" "壹" "贰" "叁" "肆" "伍" "陆" "柒" "捌" "玖" M2 Array "" "拾" "佰" "仟" "万" "亿" 处理小于一元金额 小数点后一位那么 If Number - Int Number 0 And Numb

29、er 100 - Int Number 100 Mod 10 0 Then i i - 1 Num2 0 Num i Num i "" i i - 1 Num i "" i i - 1 Cha2 0 M1 CByte Num2 0 Cha2 1 "角" Cha2 2 "整" Else 小数点后两位那么 If Number - Int Number 0 Then i i - 1 Num2 1 Num i Num2 0 Num i - 1 Num i "" i i - 1 Num i "&

30、quot; i i - 1 Num i "" i i - 1 Cha2 0 M1 CByte Num2 0 Cha2 1 "角" Cha2 2 M1 CByte Num2 1 Cha2 3 "分" End If End If 分解大于一万的整数局部 If Int Number 9999 Then If Cha2 0 "" Then i i 1 End If For j 3 To 0 Step -1 Num1 j Num i - 1 Num i - 1 "" i i - 1 Next j Else

31、 If Cha2 0 "" Then i i 1 End If For j 0 To i - 1 Num1 j Num j Num j "" Next j End If 转换万元以上数字 If Num 0 "" Then leng i j 0 For k 0 To leng - 1 If Num k "0" Then Zero Zero 1 For m 1 To 5 If Cha j - 1 M2 m Then Flag1 True End If Next m If Zero 1 And Flag1 False T

32、hen Cha j M1 CByte Num k End If If Zero 1 Then j j 1 End If Else If Num k "" Then If Zero 0 Then Cha j - 1 "零" End If Cha j M1 CByte Num k End If j j 1 End If If Num k "0" Then i i - 1 Else Cha j M2 i - 1 j j 1 i i - 1 Zero 0 End If Next k Cha j - 1 "万" Zero 0

33、 End If 转换万元以下数字 If Num1 0 "" Then j 0 Flag1 False leng 3 While Num1 leng "" leng leng - 1 Wend i leng 1 For k 0 To leng If Num1 k "" Then If Num1 k "0" Then Zero Zero 1 For m 1 To 5 If j 0 Then If Cha1 j - 1 M2 m Then Flag1 True End If End If Next m If Zero 1

34、 And Flag1 False Then Cha1 j M1 CByte Num1 k End If If Zero 1 Then j j 1 End If Else If Num1 k "" Then If Zero 0 Then Cha1 j - 1 "零" End If Cha1 j M1 CByte Num1 k End If j j 1 End If If Num1 k "0" Then i i - 1 Else Cha1 j M2 i - 1 j j 1 i i - 1 Zero 0 End If End If Next

35、 k Cha1 j - 1 "元" If Cha2 0 "" Then Cha1 j "整" End If End If 连接字符串 j 0 While Cha j "" Zcha Zcha Cha j j j 1 Wend j 0 While Cha1 j "" Zcha Zcha Cha1 j j j 1 Wend j 0 While Cha2 j "" Zcha Zcha Cha2 j j j 1 Wend 最终显示 If Flag Then Money Zcha El

36、se Money "负" Zcha End If End If End IfEnd Function8函数作用计算某种税金Public Function 税 fa Dim x If fa - 800 0 And fa - 800 500 Then x fa - 800 005 税 x ElseIf fa - 800 500 And fa - 800 2000 Then x fa - 800 01 - 25 税 x ElseIf fa - 800 2000 And fa - 800 5000 Then x fa - 800 015 - 125 税 x ElseIf fa -

37、800 5000 And fa - 800 20000 Then x fa - 800 02 - 375 税 x ElseIf fa - 800 20000 And fa - 800 40000 Then x fa - 800 025 - 1375 税 x ElseIf fa - 800 40000 And fa - 800 60000 Then x fa - 800 03 - 3375 税 x ElseIf fa - 800 60000 And fa - 800 80000 Then x fa - 800 035 - 6375 税 x ElseIf fa - 800 80000 And fa

38、 - 800 100000 Then x fa - 800 04 - 10375 税 x ElseIf fa - 800 100000 Then x fa - 800 045 - 15375 税 x Else End IfEnd Function9函数作用人民币大小写转换Function 小写 k ApplicationScreenUpdating False m1 ApplicationWorksheetFunctionRound k 100 0 n1 Int m1 100 n2 Int m1 10 - n1 10 n3 m1 - n1 100 - n2 10 e ApplicationWo

39、rksheetFunctionText n1 "DBNum1" f ApplicationWorksheetFunctionText n2 "DBNum1" g ApplicationWorksheetFunctionText n3 "DBNum1" If n3 0 Then 小写 "人民币大写" e "元" "整" End If If n3 0 And n2 0 Then 小写 "人民币大写" e "元" f "角"

40、; g "分" If n1 0 Then 小写 "人民币大写" f "角" g "分" End If End If If n3 0 And n2 0 Then 小写 "人民币大写" e "元" f "角" "整" If n1 0 Then 小写 "人民币大写" f "角" "整" End If End If If n3 0 And n2 0 Then 小写 "人民币大

41、写" e "元" g "分" If n1 0 Then 小写 "人民币大写" g "分" End If End If If k 0 Or k "" Then k "" End If ApplicationScreenUpdating TrueEnd FunctionFunction 大写 k ApplicationScreenUpdating False m1 ApplicationWorksheetFunctionRound k 100 0 n1 Int m1 100 n2 Int m1 10 - n1 10 n3 m1 - n1 100 - n2 10 e ApplicationWork

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论