VBA數(shù)據(jù)類型轉(zhuǎn)換附檢測(cè)是否為某某類型的示例(vba判斷數(shù)據(jù)類型函數(shù))

      網(wǎng)友投稿 1504 2022-06-01

      '1 數(shù)據(jù)類型綜述

      '在VBA中的數(shù)據(jù)類型有整數(shù)、文本、對(duì)象等類型。這些不同的類型有著特定的作用,在進(jìn)行運(yùn)算時(shí)也會(huì)占用

      '不同大小的內(nèi)存,所以我們?cè)诰帉懗绦驎r(shí)為了提高運(yùn)行效率,一般都要定義數(shù)據(jù)的類型。

      '2 數(shù)據(jù)類型對(duì)程序運(yùn)行的影響

      'byte ? ? ? ? ? ? ? ? ? ? ? 占用1個(gè)字節(jié)

      'integer,boolean ? ? ? ? ? ?占用2個(gè)字節(jié)

      'long,single ? ? ? ? ? ? ? ?占用4個(gè)字節(jié)

      'Double,Currency,date ? ? ? 占用8個(gè)字節(jié)

      'object ? ? ? ? ? ? ? ? ? ? 占用4個(gè)字節(jié)

      'string(不定長(zhǎng)) ? ? ? ? ? ? 占用10+字符長(zhǎng)度個(gè)字節(jié)

      VBA數(shù)據(jù)類型與轉(zhuǎn)換附檢測(cè)是否為某某類型的示例(vba判斷數(shù)據(jù)類型函數(shù))

      'String(定長(zhǎng)) ? ? ? ? ? ? ? 占用字符串長(zhǎng)度個(gè)字節(jié)

      'Variant(任意數(shù)字類型) ? ? ?占用16個(gè)字節(jié)

      'Variant(字符串) ? ? ? ? ? ?占用24+字符串長(zhǎng)度個(gè)字節(jié)

      Sub sss1()

      Dim x As Long

      Dim t

      'Dim k1 As Byte ? ? '用時(shí)0.03125s

      Dim k

      'Dim k1 As Integer '用時(shí)0.15625s

      Dim k1 As String ? '用時(shí)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")) '假空時(shí)返回FALSE

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

      End Sub

      Sub 速度測(cè)試()

      Dim t

      Dim x As Long

      t = Timer

      For x = 1 To 100000

      'If Range("a1") = "" Then '用時(shí)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 檢查是否為數(shù)字

      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 "#" '判斷一位整數(shù)

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

      End Sub

      Sub 速度測(cè)試2()

      Dim t

      Dim x As Long

      t = Timer

      For x = 1 To 100000

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

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

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

      End If

      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 判斷結(jié)果是否為錯(cuò)誤值

      Sub s4()

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

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

      End Sub

      '5 判斷是否為數(shù)組

      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

      '一、類型轉(zhuǎn)換函數(shù):CBool, CByte, CCur, CDate, CDbl, CDec, CInt, CLng, CSng, CStr, CVar

      '上述函數(shù)是把表達(dá)式轉(zhuǎn)換成相對(duì)應(yīng)的數(shù)字類型,比如clng轉(zhuǎn)換成長(zhǎng)整型,cstr轉(zhuǎn)換成文本型

      Sub ss1()

      Dim s As Integer

      s = 2334

      MsgBox 截取(CStr(s)) '因?yàn)樽远x函數(shù)參數(shù)要求是文本類型,而s是數(shù)值類型,所以需要用cstr轉(zhuǎn)換成文本類型

      End Sub

      Function 截取(x As String)

      截取 = Left(x, 2)

      End Function

      Sub ss2()

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

      End Sub

      '二、Format函數(shù)

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

      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, "\價(jià)格\:0.00")

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

      End Sub

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:掌握Excel公式中的錯(cuò)誤提示信息有助于我們對(duì)錯(cuò)誤的修正(excel公式出錯(cuò)提示)
      下一篇:表格如何自動(dòng)保存內(nèi)容(表格怎么自動(dòng)保存內(nèi)容)
      相關(guān)文章
      亚洲成人黄色在线观看| 亚洲国产成人VA在线观看| 日韩亚洲精品福利| 亚洲无删减国产精品一区| 亚洲黄片手机免费观看| 亚洲国产视频网站| 亚洲国产综合专区电影在线| 亚洲人成网7777777国产| 久久国产成人亚洲精品影院| 在线亚洲v日韩v| 亚洲第一黄色网址| 亚洲国产熟亚洲女视频| 亚洲最新中文字幕| 亚洲欧洲另类春色校园小说| 亚洲精品无码久久毛片波多野吉衣 | 99热亚洲色精品国产88| 亚洲午夜电影一区二区三区| 亚洲国产精品成人综合久久久| 7777久久亚洲中文字幕蜜桃 | 亚洲国产国产综合一区首页| 亚洲av永久无码精品网站| 亚洲乱码无码永久不卡在线| 亚洲精品国产美女久久久| 亚洲精品成人网站在线观看 | 亚洲精品123区在线观看| 亚洲不卡在线观看| 亚洲H在线播放在线观看H| 亚洲AV成人无码天堂| 亚洲最大福利视频| 中文字幕在线观看亚洲日韩| 亚洲精品无码成人| 国产青草亚洲香蕉精品久久| 亚洲国产精品尤物YW在线观看| 亚洲А∨精品天堂在线| 亚洲人成无码www久久久| 亚洲人成在线播放网站| 情人伊人久久综合亚洲| 亚洲AV无码专区电影在线观看 | 久久精品a亚洲国产v高清不卡| 亚洲精品美女久久久久9999| 亚洲一级毛片免观看|