探究Null、Empty、VbNullstring、Nothing的异同

对象初始化

       最近在做机房收费系统的时候,遇到这样一句代码。其实之前也遇到过,但是没有仔细去琢磨。这一琢磨不要紧,一琢磨问题就出来了。

Text1.text=”” 和这样一句代码text1.text=vbnullstring开始的时候没有仔细去想,当成是同样的意思,其实不是的。这样就牵出了nullemptyvbnullstringnothing、“”等一系列看起来很神似的符号,整合网上的资料和陈伟的视频(个人感觉还是陈伟讲的透彻啊!真心膜拜。。。)

vbNullstring和“”

 

Dim a As String


这个时候a还没有附值,只是定义a为字符串类型,就是说还没有真正占用内存,地址是0。这时候 a 就是vbNullString
当执行以下这段代码的时候。

 

a =""


 

这时,a已经被赋值,尽管等于空字符串,但是已经占用了内存,地址就发生了变化。

Noting

代表是一个对象,什么都没有。没有具体的对象相对应,就是这个对象还没有创建。针对是一个对象,可以使用Isnothing来判断。

例:

Dim n as object

n就是这样一个没有初始化(恢复到默认状态)的对象。还有就是set obj =nothing,如大家经常见到的一样,就是释放这样obj的一个对象。

Empty

代表变量被初始化为空,初始化为string是为 “” ,而初始化为integer等数值型初始化为0.

Null

不代表任何值,不是0也不是nothing

举个例子:天气预报站,测量仪器坏了。这样中午没有记录了,这个数据信息不可能得到了。这个数据信息写0不对,是吧?其他值也不行。这样的值就是null值,没有任何意义。

再举个应用:

 

Grade

一班

1

78

2

Null

3

89

Average

(78+89)/2

如图在列表中,有个一个班级的成绩是null值。如果要计算班级的平均成绩对于null值,求和不进行求和。不进行整除。这时候的平均成绩就是83.5。如果要判断一个字符串是否为null值,用isnull函数,返回的是boolean

 

转载于:https://www.cnblogs.com/guziming/archive/2012/09/08/4232785.html

Option Explicit Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swDrawModel As SldWorks.ModelDoc2 Dim swDraw As SldWorks.DrawingDoc Dim swView As SldWorks.View Dim swExportPDFData As SldWorks.ExportPdfData Dim Revision As String Dim FilePath As String Dim FolderPath As String Dim FileName As String Sub Main() Set swApp = Application.SldWorks Set swDrawModel = swApp.ActiveDoc If swDrawModel Is Nothing Then MsgBox "There is no active document" Exit Sub End If If swDrawModel.GetType <> swDocumentTypes_e.swDocDRAWING Then MsgBox "There is no active drawing document" Exit Sub End If Set swDraw = swDrawModel Set swView = swDraw.GetFirstView Set swView = swView.GetNextView If swView Is Nothing Then MsgBox "There is no drawing view" Exit Sub End If Set swModel = swView.ReferencedDocument 'Get Model Properties Revision = swDrawModel.GetCustomInfoValue("", "Revision") If Revision = "" Then Revision = "0" 'Get file name FileName = swDraw.GetPathName FileName = Right(FileName, Len(FileName) - InStrRev(FileName, "\")) FileName = Left(FileName, InStrRev(FileName, ".") - 1) 'create folder 'FilePath = Environ("USERPROFILE") & "\SW FDO\" FolderPath = "C:\SW_Export\" If Dir(FolderPath, vbDirectory) = vbNullString Then MkDir FolderPath 'FolderPath = FolderPath & "\" 'If Dir(FolderPath, vbDirectory) = vbNullString Then MkDir FolderPath 'Set save path FilePath = FolderPath & FileName & "_Rev" & Revision Debug.Print FilePath 'Save as STEP swModel.Extension.SaveAs FilePath & ".STEP", swSaveAsVersion_e.swSaveAsCurrentVersion, swSaveAsOptions_e.swSaveAsOptions_Silent, Nothing, Empty, Empty 'Save as PDF Set swExportPDFData = swApp.GetExportFileData(1) swExportPDFData.SetSheets swExportDataSheetsToExport_e.swExportData_ExportAllSheets, Empty swExportPDFData.ViewPdfAfterSaving = False swDrawModel.Extension.SaveAs FilePath & ".PDF", swSaveAsVersion_e.swSaveAsCurrentVersion, swSaveAsOptions_e.swSaveAsOptions_Silent, swExportPDFData, 0, 0 MsgBox "Files saved:" & vbCr & FilePath & ".STEP" & vbCr & FilePath & ".PDF" End Sub 此代码增加新功能,一键导出dwg格式的文件
最新发布
12-05
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值