VBA數據類型與轉換附檢測是否為某某類型的示例(vba變量類型判斷)

      網友投稿 1014 2025-03-31

      '1 數據類型綜述


      '在VBA中的數據類型有整數、文本、對象等類型。這些不同的類型有著特定的作用,在進行運算時也會占用

      '不同大小的內存,所以我們在編寫程序時為了提高運行效率,一般都要定義數據的類型。

      '2 數據類型對程序運行的影響

      'byte ? ? ? ? ? ? ? ? ? ? ? 占用1個字節

      'integer,boolean ? ? ? ? ? ?占用2個字節

      'long,single ? ? ? ? ? ? ? ?占用4個字節

      'Double,Currency,date ? ? ? 占用8個字節

      'object ? ? ? ? ? ? ? ? ? ? 占用4個字節

      'string(不定長) ? ? ? ? ? ? 占用10+字符長度個字節

      'String(定長) ? ? ? ? ? ? ? 占用字符串長度個字節

      'Variant(任意數字類型) ? ? ?占用16個字節

      'Variant(字符串) ? ? ? ? ? ?占用24+字符串長度個字節

      Sub sss1()

      Dim x As Long

      Dim t

      'Dim k1 As Byte ? ? '用時0.03125s

      Dim k

      'Dim k1 As Integer '用時0.15625s

      Dim k1 As String ? '用時0.203125s

      k = 1

      t = Timer

      For x = 1 To 1000000

      k1 = k

      Next x

      Debug.Print Timer - t

      End Sub

      '1 檢查是否為空

      Sub s1()

      Debug.Print Range("a1") = "" '判斷真空,無法判斷假空

      Debug.Print Len(Range("a1")) = 0 '判斷真空,無法判斷假空

      Debug.Print VBA.IsEmpty(Range("a1")) '假空時返回FALSE

      Debug.Print VBA.TypeName(Range("a1").Value) '返回Empty表示為空

      End Sub

      Sub 速度測試()

      Dim t

      Dim x As Long

      t = Timer

      For x = 1 To 100000

      'If Range("a1") = "" Then '用時0.81

      ' If Len(Range("a1")) = 0 Then '0.84

      ' If VBA.IsEmpty(Range("a1")) Then '速度 0.79

      'If VBA.TypeName(Range("a1").Value) = Empty Then '0.84

      End If

      Next x

      Debug.Print Timer - t

      End Sub

      '2 檢查是否為數字

      Sub s2()

      Debug.Print VBA.IsNumeric(Range("a1"))

      Debug.Print Application.WorksheetFunction.IsNumber(Range("A1"))

      Debug.Print VBA.TypeName(Range("A1").Value)

      ' Debug.Print Range("a1").Value Like "#" '判斷一位整數

      ' Debug.Print Range("a1") Like "*#*" '判斷是否包含數字

      End Sub

      Sub 速度測試2()

      Dim t

      Dim x As Long

      t = Timer

      For x = 1 To 100000

      'If VBA.IsNumeric(Range("a1")) Then '用時0 0.79

      'If Application.WorksheetFunction.IsNumber(Range("A1")) Then '0.9218

      'If VBA.TypeName(Range("A1").Value) = "Double" Then '速度 0.84

      End If

      VBA數據類型與轉換附檢測是否為某某類型的示例(vba變量類型判斷)

      Next x

      Debug.Print Timer - t

      End Sub

      '3 檢查是否為文本

      Sub t3()

      Debug.Print Application.IsText(Range("a1"))

      Debug.Print "B" Like "[A-Za-z]" '判斷是否為字母

      Debug.Print Len(Range("a1"))

      Debug.Print Range("a1") Like "*[一-龥]*" '判斷字符串中是否包含漢字

      End Sub

      '4 判斷結果是否為錯誤值

      Sub s4()

      Debug.Print VBA.IsError(Range("a1"))

      Debug.Print TypeName(Range("a1").Value)

      End Sub

      '5 判斷是否為數組

      Sub s5()

      Dim arr

      arr = Range("A1:A2")

      Erase arr

      Debug.Print VBA.IsArray(arr)

      End Sub

      '6 判斷是否為日期

      Sub s6()

      Debug.Print VBA.IsDate(Range("a2"))

      End Sub

      '一、類型轉換函數:CBool, CByte, CCur, CDate, CDbl, CDec, CInt, CLng, CSng, CStr, CVar

      '上述函數是把表達式轉換成相對應的數字類型,比如clng轉換成長整型,cstr轉換成文本型

      Sub ss1()

      Dim s As Integer

      s = 2334

      MsgBox 截取(CStr(s)) '因為自定義函數參數要求是文本類型,而s是數值類型,所以需要用cstr轉換成文本類型

      End Sub

      Function 截取(x As String)

      截取 = Left(x, 2)

      End Function

      Sub ss2()

      Debug.Print 1 + True 'CInt(1 = 1)

      End Sub

      '二、Format函數

      'format函數用法等同于工作表中的text函數,可以格式化顯示數字或文本

      Sub ss3()

      Dim n, n1

      n = 234.3372

      n1 = 41105

      Debug.Print Format(n, "0.00")

      Debug.Print Format(n, "0")

      Debug.Print Format(n, "\價格\:0.00")

      Debug.Print Format(n1, "yyyy-mm-dd")

      End Sub

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:超鏈接的顏色怎么自己設計(超鏈接如何改顏色)
      下一篇:wps如何添加餅圖(wps餅形圖添加)
      相關文章
      亚洲国产综合精品中文第一区| 亚洲综合无码一区二区| 精品日韩99亚洲的在线发布 | 久久亚洲AV无码精品色午夜| 久久久久亚洲精品影视| 亚洲国产另类久久久精品小说| 久久夜色精品国产亚洲av| 国产亚洲午夜高清国产拍精品| 亚洲第一视频在线观看免费| 国产亚洲情侣久久精品| 亚洲国产成人精品久久久国产成人一区二区三区综 | 亚洲色无码专区在线观看| 亚洲综合网站色欲色欲| 亚洲色婷婷六月亚洲婷婷6月| 国产偷v国产偷v亚洲高清| 亚洲AV无码久久寂寞少妇| 亚洲电影一区二区| 久久综合亚洲鲁鲁五月天| 亚洲第一永久在线观看| 亚洲1234区乱码| 亚洲人成电影网站免费| 五月婷婷亚洲综合| 国产成人99久久亚洲综合精品 | 亚洲人成网站在线播放vr| 亚洲精品中文字幕无码蜜桃| 亚洲av永久无码精品网站| 久久亚洲春色中文字幕久久久 | 国产精品亚洲αv天堂无码| 国精无码欧精品亚洲一区| 精品亚洲aⅴ在线观看| 亚洲国产综合精品| 亚洲日韩一区精品射精| 国产精品亚洲专区一区| 日韩亚洲变态另类中文| 水蜜桃亚洲一二三四在线| 亚洲国产精品日韩在线观看| 亚洲国产成人AV在线播放| 亚洲熟伦熟女新五十路熟妇| 亚洲第一AV网站| 亚洲日韩中文字幕天堂不卡| 亚洲欧美国产精品专区久久|