欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
[分享]關(guān)于Like運算符的使用
[分享]關(guān)于Like運算符的使用

關(guān)于Like運算符的使用
分類(lèi):ExcelVBA>>VBA語(yǔ)法

 


 

引子
公司要求按照已經(jīng)用Excel制作好的固定的格式上交報表,很簡(jiǎn)單,不一會(huì )就完成并上交了,結果,沒(méi)多久報表被退回,原因是報表中有些單元格中的字符數超過(guò)了規定的100個(gè),只好重做。當時(shí),首先想到的問(wèn)題就是如何知道單元格中的字符數,這可用Excel所提供的Len工作簿函數簡(jiǎn)單的完成。事后又仔細思考了一下,在Word中有字數統計功能,但在Excel中沒(méi)有,能否摸仿Word中的字數統計功能,對Excel中的單元格或者所選的單元格區域進(jìn)行字數統計呢?進(jìn)一步說(shuō),將單元格或者所選的單元格區域中的漢字、數字、字母等進(jìn)行分類(lèi)統計。當然,這些都可使用工作簿函數實(shí)現,下面所講解的內容是使用VBA來(lái)實(shí)現上述功能。

 


 

在Excel中實(shí)現字數統計
(1) 使用Len工作簿函數進(jìn)行簡(jiǎn)單的字數統計
‘① - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
‘對當前單元格進(jìn)行字數統計
Sub TotalCellCharNum()
  Dim i As Long
  i = Len(ActiveCell.Value)
  MsgBox "當前單元格的字數為:" & Chr(10) & i
End Sub
‘② - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
‘對所選的單元格區域進(jìn)行字數統計
Sub TotalSelectionCharNum()
  Dim i As Long
  Dim rng As Range
  For Each rng In Selection
    i = i + Len(rng.Value)
  Next rng
  MsgBox "所選單元格區域的字數為:" & Chr(10) & i
End Sub

 


 

(2) 使用Like運算符進(jìn)行較復雜的字數統計
‘③ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
‘對當前單元格中的文本分類(lèi)進(jìn)行字數統計

Sub SubTotalCellCharNum()
  Dim str As String, ChineseChar As Long
  Dim Alphabetic As Long, Number As Long
  Dim i As Long, j As Long
  j = Len(ActiveCell.Value)
  For i = 1 To Len(ActiveCell)
    str = Mid(ActiveCell.Value, i, 1)
    If str Like "[一-龥](méi)" = True Then
      ChineseChar = ChineseChar + 1 ‘漢字累加
    ElseIf str Like "[a-zA-Z]" = True Then
      Alphabetic = Alphabetic + 1 ‘字母累加
    ElseIf str Like "[0-9]" = True Then
      Number = Number + 1 ‘數字累加
    End If
  Next
  MsgBox "當前單元格中共有字數" & j & "個(gè),其中:" & vbCrLf & "漢字:" & ChineseChar & "個(gè)" & _
     vbCrLf & "字母:" & Alphabetic & "個(gè)" & _
     vbCrLf & "數字:" & Number & "個(gè)", vbInformation, "文本分類(lèi)統計"
End Sub
‘④ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
‘對所選的單元格區域中的文本分類(lèi)進(jìn)行字數統計

Sub SubTotalSelectionCharNum()
  Dim str As String, ChineseChar As Long
  Dim Alphabetic As Long, Number As Long
  Dim i As Long, rng As Range, j As Long
  For Each rng In Selection
    j = j + Len(rng.Value)
    For i = 1 To Len(rng)
      str = Mid(rng.Value, i, 1)
      If str Like "[一-龥](méi)" = True Then
        ChineseChar = ChineseChar + 1 ‘漢字累加
      ElseIf str Like "[a-zA-Z]" = True Then
        Alphabetic = Alphabetic + 1 ‘字母累加
      ElseIf str Like "[0-9]" = True Then
        Number = Number + 1 ‘數字累加
      End If
    Next
  Next
  MsgBox "所選單元格區域中共有字數" & j & "個(gè),其中:" & vbCrLf & "漢字:" & ChineseChar & "個(gè)" & _
     vbCrLf & "字母:" & Alphabetic & "個(gè)" & _
     vbCrLf & "數字:" & Number & "個(gè)", vbInformation, "文本分類(lèi)統計"
End Sub
在這里使用了Like運算符實(shí)現指定字符的查找,效果圖01所示。


此主題相關(guān)圖片如下:
  圖01

示例文檔見(jiàn) 統計字數.xls。

點(diǎn)擊瀏覽該文件
 

下面介紹Like運算符的語(yǔ)法及一些應用示例,來(lái)說(shuō)明Like運算符的功能。其中關(guān)于Like運算符語(yǔ)法的介紹,也可參見(jiàn)《VBA的運算符和表達式》一文。


Like運算符的語(yǔ)法
Like運算符用于判斷給定的字符串是否與指定的模式相匹配,其語(yǔ)法為:
結果=<字符串> Like <模式>
說(shuō)明:
(1) <字符串>為文本字符串或者對包含文本字符串的單元格的引用,是要與<模式>相比較的字符串,數據類(lèi)型為String型。
<模式>數據類(lèi)型為String型,字符串中可以使用一些特殊字符,其它的字符都能與它們相匹配,其如下表1所示。
<模式>的字符                       與<字符串>匹配的文本
?                                          任意單個(gè)字符
*                                            零或者多個(gè)字符
#                                           任意單個(gè)數字(0-9)
[charlist]                                字符列表中的任意單個(gè)字符
[!charlist]                               不在字符列表中的任意單個(gè)字符
[ ]                                          空字符串(“ “)
(2) <結果>為Boolean型。如果字符串與指定的模式相匹配,則<結果>為T(mén)rue;否則<結果>為False。如果字符串或者模式Null,則結果為Null。
(3) Like運算符缺省的比較模式為二進(jìn)制,因此區分大小寫(xiě)??梢杂肙ption Compare語(yǔ)句來(lái)改變比較模式,如改變?yōu)槲谋颈容^模式,則不區分大小寫(xiě)。
(4) [Charlist]將模式中的一組字符與字符串中的一個(gè)字符進(jìn)行匹配,可以包含任何一種字符,包括數字;在[Charlist]中使用連字號(-)產(chǎn)生一組字符來(lái)與字符串中的一個(gè)字符相匹配,如[A-D]與字符串相應位置的A、B、C或D匹配;在[Charlist]中可以產(chǎn)生多組字符,如[A-D H-J];各組字符必須是按照排列順序出現的;在Charlist的開(kāi)頭或結尾使用連字號(-)與連字號自身相匹配,例如[-H-N]與連字號(-)或H到N之間的任何字符相匹配。
在Charlist中的一個(gè)字符或者一組字符前加上!號,表明與該字符或該組字符之外的所有字符匹配,如[!H-N]與字符H-N范圍之外的所有字符匹配;而在[]外使用!號則只匹配其自身。要使用任何特殊字符作為匹配字符,只需將它放在[]中即可,例如[?]表明要與一個(gè)問(wèn)號進(jìn)行匹配。
為了與左括號 ([)、問(wèn)號 (?)、數字符號 (#) 和星號 (*) 等特殊字符進(jìn)行匹配,可以將它們用方括號括起來(lái)。不能在一個(gè)組內使用右括號 (]) 與自身匹配,但在組外可以作為個(gè)別字符使用。

以實(shí)例來(lái)認識Like運算符
下面的代碼演示了Like運算符在不同情況下所得的結果。
Sub testLikePattern()
  Dim bLike1 As Boolean, bLike2 As Boolean
  Dim bLike3 As Boolean, bLike4 As Boolean
  Dim bLike5 As Boolean, bLike6 As Boolean
  Dim bLike7 As Boolean
  bLike1 = "aBBBa" Like "a*a"    ‘ 返回 True
  bLike2 = "F" Like "[A-Z]"    ‘ 返回 True
  bLike3 = "F" Like "[!A-Z]"    ‘ 返回 False
  bLike4 = "a2a" Like "a#a"    ‘ 返回 True
  bLike5 = "aM5b" Like "a[L-P]#[!c-e]"    ‘ 返回 True
  bLike6 = "BAT123khg" Like "B?T*"    ‘ 返回 True
  bLike7 = "CAT123khg" Like "B?T*"    ‘ 返回 False
  MsgBox "Like運算符不同情形匹配結果:" & vbCrLf & " ""aBBBa"" Like ""a*a"" 結果為T(mén)rue." & _
     vbCrLf & """F"" Like ""[A-Z]""結果為T(mén)rue." & _
     vbCrLf & """F"" Like ""[!A-Z]""結果為False." & _
     vbCrLf & """a2a"" Like ""a#a""結果為T(mén)rue." & _
     vbCrLf & """aM5b"" Like ""a[L-P]#[!c-e]""結果為T(mén)rue." & _
     vbCrLf & """BAT123khg"" Like ""B?T*""結果為T(mén)rue." & _
     vbCrLf & """CAT123khg"" Like ""B?T*""結果為False."
End Sub
結果如圖02所示。

此主題相關(guān)圖片如下:
   圖02
示例文檔見(jiàn) 演示Like運算符的基本情形.xls。
點(diǎn)擊瀏覽該文件
[此貼子已經(jīng)被作者于2006-10-25 14:03:30編輯過(guò)]

Like運算符的使用及示例


[示例一] 利用Like運算符自定義字符比較函數(摘自《Excel 2003高級VBA編程寶典》)
IsLike函數非常簡(jiǎn)單,如果文本字符串與指定的模式匹配,該函數則返回True,代碼如下:
Function IsLike(text As String,pattern As String) As Boolean
   IsLike= text Like pattern
End Function
該函數接受兩個(gè)參數:
text:字符串或者是對包含字符串的單元格的引用。
pattern:包含有如上表1所示特殊字符的字符串。
函數的使用:在工作表中輸入下面所示公式,可以查看函數的結果。
(1)下面的公式返回True。因為*匹配任意數量的字符。如果第一個(gè)參數是以“g”開(kāi)始的任意文本,則返回True:
=IsLike(“guitar”,”g*”)
(2)下面的公式返回True。因為?匹配任意的單個(gè)字符。如果第一個(gè)參數是以“Unit12”,則返回False:
=IsLike(“Unit1”,”Unit?”)
(3)下面的公式返回True,原因是第一個(gè)參數是第二個(gè)參數的某個(gè)單個(gè)字符:
=IsLike(“a”,”[aeiou]”)
(4)如果單元格A1包含a,e,I,o,u,A,E,I,O或者U,那么下面的公式返回True。使用Upper函數作為參數,可以使得公式不區分大小寫(xiě):
=IsLike(Upper(A1),Upper(“[aeiou]”))
(5)如果單元格A1包含以“1”開(kāi)始并擁有3個(gè)數字的值(也就是100到199之間的任意整數),那么下面的公式返回True:
=IsLike(A1,”1##”)

[示例二] 判斷文本框的輸入結果
打開(kāi)一個(gè)工作簿,選擇菜單“工具——宏——Visual Basic編輯器”或按Alt+F11組合鍵,打開(kāi)VBE編輯器。在VBE編輯器中,選擇菜單“插入——用戶(hù)窗體”,新建一個(gè)用戶(hù)窗體,點(diǎn)擊控件工具箱中的“文本框”控件和“按鈕”控件,在用戶(hù)窗體上放置一個(gè)“文本框”和一個(gè)“按鈕”,并在用戶(hù)窗體中對它們的大小和位置進(jìn)行合理調整,將按鈕的標題改為“確定”,如圖03所示。

此主題相關(guān)圖片如下:
  圖03
雙擊剛創(chuàng )建的“按鈕”控件,并輸入下面的代碼:
Private Sub CommandButton1_Click()
  Dim sEnd As String, sPattern As String
  sEnd = "in Office"
  sPattern = "[F W]*" & sEnd
  If TextBox1.Text Like sPattern Then
    MsgBox "輸入正確"
  Else
    MsgBox "輸入錯誤"
  End If
End Sub
示例說(shuō)明:本代碼中[F W]*表示字符以F或W開(kāi)頭的字符串,使用&連接符將其與變量sEnd所代表的字符串“in Office”相連接。如果您在文本框中輸入以字符F或字符W開(kāi)頭并以“in Office”結尾的句子,將顯示“輸入正確”消息框,否則將顯示“輸入錯誤”的消息框。在VBE編輯器中點(diǎn)擊運行按鈕或按F5鍵,運行該代碼試試。當您在文本框中輸入“Fanjy in Office”后,單擊按鈕,將顯示“輸入正確”消息框。注意,本示例區分大小寫(xiě)。示例文檔見(jiàn) 判斷文本框輸入結果.xls。
點(diǎn)擊瀏覽該文件
[此貼子已經(jīng)被作者于2006-10-25 14:05:17編輯過(guò)]

小結
上面對Like運算符的相關(guān)知識進(jìn)行了介紹,在編寫(xiě)代碼的過(guò)程中,可以靈活使用Like運算符。例如,可以用來(lái)進(jìn)行字符串的比較,然后進(jìn)行相應的統計或者執行進(jìn)一步的操作,或者用來(lái)判斷用戶(hù)輸入是否正確,以判斷程序是否向下運行,等等

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Python字符串運算符
第八講 利用FindPrevious進(jìn)行重復搜索及利用LIKE查找
[原創(chuàng )]VBA編程系列:運算符和表達式
VBA.vbcrlf
查找關(guān)鍵字單元格
Excel巧用提取單元格字符函數和字符串連接運算符,免去重復勞動(dòng)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久