首页 使用VBA判断单元格各字符是否为中文、英文、数字、符号的复杂解读

使用VBA判断单元格各字符是否为中文、英文、数字、符号的复杂解读

举报
开通vip

使用VBA判断单元格各字符是否为中文、英文、数字、符号的复杂解读Function IsLike(strText As String, pattern As String As Boolean IsLike = strText Like pattern End Function Function IsChinese(strText As String As Boolean Dim i%, h$ h = Hex(Asc(strText If Asc(Left(h, 1 >= 66 And Asc(Left(h, 1 2 Or outPutType <> 4 Then...

使用VBA判断单元格各字符是否为中文、英文、数字、符号的复杂解读
Function IsLike(strText As String, pattern As String As Boolean IsLike = strText Like pattern End Function Function IsChinese(strText As String As Boolean Dim i%, h$ h = Hex(Asc(strText If Asc(Left(h, 1 >= 66 And Asc(Left(h, 1 <= 70 Then IsChinese = True End If End Function Function StringType(strText As String, Optional outPutType As Integer = 1, Optional sumVar As Boolean = False As Variant Dim strtemp As String, blnArray(1 To 5 As String, strPreType As Integer Dim intNum As Integer, startPos As Integer, intlen As Integer Dim strArray As Variant, strCompare1 As String, strCompare2 As String, dblSum As Double If sumVar = True And Not (outPutType <> 2 Or outPutType <> 4 Then sumVar = False For i = 1 To Len(strText strtemp = Mid(strText, i, 1 If i > 1 Then strCompare1 = WorksheetFunction.Asc(Mid(strText, i - 1, 3 strCompare2 = WorksheetFunction.Asc(Mid(strText, i, 2 If WorksheetFunction.Dbcs(strtemp = strtemp Then strtemp = WorksheetFunction.Asc(strtemp If IsLike(strtemp, "[0-9]" Or IsLike(strCompare1, "[0-9].[0-9]" Or IsLike(strCompare2, "-[0-9]" Then If strPreType = 4 Then blnArray(4 = Left(blnArray(4, Len(blnArray(4 - 1 & intNum Else intNum = 1 blnArray(4 = blnArray(4 & "- " & i & "/" & intNum End If strPreType = 4 intNum = intNum + 1 ElseIf IsLike(strtemp, "[a-zA-Z]" Then If strPreType = 5 Then blnArray(5 = Left(blnArray(5, Len(blnArray(5 - 1 & intNum Else intNum = 1 blnArray(5 = blnArray(5 & "- " & i & "/" & intNum End If strPreType = 5 intNum = intNum + 1 ElseIf IsChinese(strtemp Then If strPreType = 1 Then blnArray(1 = Left(blnArray(1, Len(blnArray(1 - 1 & intNum Else intNum = 1 blnArray(1 = blnArray(1 & "- " & i & "/" & intNum End If strPreType = 1 intNum = intNum + 1 Else strPreType = 0 End If Else If IsLike(strtemp, "[0-9]" Or IsLike(strCompare1, "[0-9].[0-9]" Or IsLike(strCompare2, "-[0-9]" Then If strPreType = 2 Then blnArray(2 = Left(blnArray(2, Len(blnArray(2 - 1 & intNum Else intNum = 1 blnArray(2 = blnArray(2 & "- " & i & "/" & intNum End If strPreType = 2 intNum = intNum + 1 ElseIf IsLike(strtemp, "[a-zA-Z]" Then If strPreType = 3 Then blnArray(3 = Left(blnArray(3, Len(blnArray(3 - 1 & intNum Else intNum = 1 blnArray(3 = blnArray(3 & "- " & i & "/" & intNum End If strPreType = 3 intNum = intNum + 1 Else strPreType = 0 End If End If Next strtemp = "" strArray = Split(blnArray(outPutType, "-" For i = 1 To UBound(strArray intNum = InStr(1, strArray(i, "/" startPos = Mid(strArray(i, 1, intNum - 1 intlen = Mid(strArray(i, intNum + 1 If sumVar Then dblSum = dblSum + WorksheetFunction.Asc(Mid(strText, startPos, intlen Else strtemp = strtemp & Mid(strText, startPos, intlen & " " End If Next If sumVar Then StringType = dblSum Else If Len(strtemp Then StringType = Left(strtemp, Len(strtemp - 1 Else StringType = "" End If End If End Function
本文档为【使用VBA判断单元格各字符是否为中文、英文、数字、符号的复杂解读】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_963767
暂无简介~
格式:doc
大小:19KB
软件:Word
页数:0
分类:
上传时间:2019-04-21
浏览量:194