家具设计师培训班实战课程

跟阿忠学家具设计,月薪8000只是起步

当前位置:
VBA数据类型与转换附检测是否为某某类型的示例

\'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

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

作者:Excel自学网 发布时间:2020.01.05

家具设计课堂是国内做家具设计在线教育的线上培训机构,初入家具设计行业的准家具设计师建议在此技术提升。跟阿忠学家具设计,月薪8000只是起步!您想找一份高薪设计类的研发工作,或许家具设计课堂能帮您实现您的初衷愿景。报名学习QQ:415284424。

系统化培训家具结构设计师从家具设计课堂开始

Excel自学网提供大量优秀的Excel学习资源Excel自学网致力于建设成一个公益型Excel在线自学网站,助您轻松学习Excel