关于Null、Empty、vbNullString、Nothing差别

别再傻傻分不清!VB6/VBA中Null、Empty、Nothing、Missing、vbNullString的实战避坑指南 在VB6/VBA开发中,处理各种"空值"概念就像在雷区行走——稍有不慎就会引发难以调试的异常。我曾见过一个数据库项目因为混淆Null和Empty导致财务报表计算错误,也调试过因误用vbNullString而崩溃的API调用。这些概念看似简单,却在实战中暗藏玄机。 阅读详情

这篇博客根据网友那里获取来的,不是本人亲写亲测。

Null:Null是一个象Integer或者String一样的变量类型,它表示一个没有合法数据的变量。

       这有别于zero、Nothing、Empty或者vbNullString。许多数值与Null结合在一起,都将产生Null结果。

       比如:    表达式 结果 Null - Null Null Null + 7 7 Null = Null Null   

       你可以使用IsNull语句来判断表达式是否为Null:   

        If IsNull(my_variable) Then ...   

Empty:这也是一个象Integer或者String一样的变量类型,它表示了一个还没有进行初始化的变量。它与Null的意义不同,

       Null表示没有合法数据。    一个没有初始化的变量的数值是Empty。你可以使用IsEmpty语句来判断是否变量进行了初始化:

           If IsEmpty(my_variant) Then ...    

Nothing:这是一个指向空对象的对象引用。将对象引用设置为Nothing,就释放了那个对象。如果没有其他的引用指向对象,

      Visual Basic就将销毁这个对象。    Dim obj As Form1    :    Set obj = Nothing

       注释: Free the object reference.    使用Is Nothing语句来判断是否一个引用为Nothing:   

       If obj Is Nothing Then ...    vbNullString:这是个常量,表示一个empty字符串。它与空白字符串""不同,

       表示什么也没有的字符串(nothing string)。对于许多场合,它被当作一个empty字符串""处理,

       真正使用它的目的是传递null参数给库函数。    Null是一个很奇怪的数值,它不是zero,不是Nothing,不是vbNullString。

       它是没有定义的东西。    判断字符串是否为空白    有以下几种方法判断一个字符串是否为空白:

       Dim txt As String

       Dim blank As String blank = "" : If Len(txt) = 0 Then ...

       If txt = vbNullString Then ... If txt = "" Then ... If txt = blank Then ...   

       经过测试,Len(txt)=0的方法要比其他方法快20%多。

 

 

Nothing在VBA中的用途

我们常在VBA代码中看到Nothing这个单词,如:

    Set d = Nothing

    If d is Nothing

 Nothing到底是什么意思呢?帮助里是这样解释的:

使用 Nothing 关键字被将对象变量从实际对象中分离开来。要使用 Set 语句将 Nothing 赋值给对象变量。

通俗一点就是判断某个对象是否存在(is Nothing)和从内存资源中释放这个对象(= Nothing)

例如我们在EP上找一个会员, 我们就可以这样写

Dim aa as Ep会员   '假设置Ep会员是一个对象类型

Set aa="小A"     '用Set 设置对象变量为会员"小A"

If  aa Is Nothing Then     '如aa不存在

   Msgbox "这个会员不存在"

Else

     Msgbox "这个会员存在"

End If

-----------------------------------------------------------------------------------------------------------------

而且Set 对象变量=Nothing   则是把从非Excel库提库的外来引用对象从内存资源中释放出去.如

Dim d As New Dictionary   '创建一个新的字典对象
Set d = Nothing                '从内存资源中释放出来

VB编程中注册表操作的详细指南 在Windows操作系统中,注册表是一个庞大的数据库系统,用于存储配置信息、系统设置以及应用程序和驱动程序的相关数据。通过编程方式读写注册表可以实现对系统和应用程序的深度定制和管理。VB(Visual Basic)作为一种简单的编程语言,提供了Registry对象用于与注册表进行交互。这种操作可以执行创建、修改、删除和查询注册表项和值的命令。然而需要注意的是,直接操作注册表存在风险,比如可能会导致系统不稳定或软件冲突,因此在操作前需要确保代码的正确性和安全性。 阅读详情

相关推荐

ASP技术综合学习包:源代码与理论探究

本文还有配套的精品资源,点击获取 简介:ASP,作为微软的服务器端脚本环境,被广泛用于创建动态网页和Web应用程序。本学习包提供了一套完整的ASP学习资料,包含源代码和详细论文。论文深入探讨了ASP的核心概念、脚本语言、数据库交互、网页设计、高级特性、Web应用架构以及性能优化与安全性。源代码部分则包含实际编程示例,如登录注册系统、新闻发布系统等,为学习者提供理论与实践相结...

weixin_28235889的博客 549

VB中判断空的几种方法,Null, Missing, Empty, Nothing, vbNullString区别

  vb6中存在几个虚幻的值:Null、Missing、Empty、Nothing、vbNullString。除了最后一个之外,每一个值都不能直接用“a=值”来判断。下面分别解释一下这几个值的含义。 1、Null Null指一个不合法的数据,判断一个变量是否为Null使用isNull函数。 这种数据通常出现在三种情况下: (1)最简单的,函数直接返回Null给调用方。譬如 Function ...

devops 1万+

VBS编程与自动化测试实战指南

VBS 可能不是最酷的语言,但它就像一把瑞士军刀🪒——小巧、可靠、开箱即用。在那些不允许安装额外运行时、只能使用原生组件的环境中,它是唯一的选择。更重要的是,它教会我们一个道理:工具无所谓新旧,关键是你怎么用它解决问题。只要结构清晰、模块化设计、加上良好的日志与断言机制,即使是.vbs脚本,也能构建出高效、可持续维护的自动化测试体系。所以,下次当你面对一个老旧系统时,不妨试试用 VBS 写个脚本 —— 说不定,它就是那个“最快落地”的解决方案 🚀。

weixin_35973118的博客 920

VBA,一些基本的系统常用空值关键字辨析:nothing, empty ,null,以及错误值关键字 error的辨析

一 VBA常用的系统空值关键字:nothing ,empty ,null 1.1 三者区别 empty 有效的空值,如0 "",比较常用 null 无效的控制,比如二选一之外的空 nothing 对象变量的空值, 语法是 object is nothing 而不是用 =nothing 1.2 emptynull not...

奔跑的犀牛先生 1万+

Qt Coordinate System

Qt 坐标系统Qt 坐标系统 数学基础 Qt坐标系统 视口 平移变换 缩放变换 setWindow 旋转 总结数学基础 矩阵与线性变换坐标系变换Qt坐标系统 视口和OpenGL一样,视口确定了画面在窗口(QWidget)中显示的区域,Qt的绘图坐标会完全映射到视口(View port)上,就像图示一样。默认情况下,窗口和视口是重合的,视口的大小覆盖了整个窗口。和OpenGL一样,Qt的QPa

unclerunning的博客 1151

RK3568部署YOLOv8的7种方法对比:量化vs非量化的性能实测与优化建议

本文针对RK3568平台,深度对比了YOLOv8模型的七种部署方法,重点分析了量化与非量化策略的性能差异。通过实测数据,详细评估了不同方法在推理速度、CPU占用、内存消耗及模型精度上的表现,并提供了从模型结构调整到系统级优化的具体建议,为边缘AI部署选型提供实用参考。

weixin_29099217的博客 527

EXCEL的各种“空”的区别:blank,““ , 0 ,以及 VBA里的各种空值:empty,null,nothing 等

EXCEL的真正空值是 blank,只能用=isblank() 来判断 但是EXCEL里真正用到 blank的地方很少。大多数情况下只需要判断 if(A1="",) 即可。 另外EXCEL的内置函数一般不能返回空值, EXCEL文档这里不好编辑,我贴了我自己文档的图片如下 总结的结论如下 凡是为blank的地方,EXCEL也认为是可以被认为为""。反之不成立 就像文本型的数字,虽然类型是文本,但是可以直接当文本计算。也是反之不成立 函数无法返回真正的blank,但是可以返回"" 比如EXCEL的直接.

奔跑的犀牛先生 5万+

芋道前后端分离项目跳过登录

在此页面中可以看到当在没有获取到token时,如果此页面在白名单中则直接进入,所以我们将刚刚配置在。在此路径下配置需要跳过登录的页面路径,记住path中编辑的名称。根据以上两图可以发现芋道的。将所有需要跳过登录的方法。,否则会提示登录状态过期。至此完成免登录进入页面。

FanZaiYo的博客 5486

VBA如何判断一个对象是否为空

dim curRange as Range set curRange = Nothing if isNull(curRange)=false then 'Range 对象设置为Nothing时不对用isNull来判断,当对象为Nothing时用什么来判断? ... end if 问题已经解决,判断方法是 if typeName(curRange)  ... end if 

海纳百川 2万+

SAP 系统和银行系统通过 SM2 加密算法进行集成

SM2 是基于椭圆曲线离散对数问题(ECDLP)的一种公钥密码算法。椭圆曲线加密的核心原理,是利用了一个数学难题:在椭圆曲线群上,已知曲线上两点的运算结果,逆向推导出这两个点的具体信息是非常困难的。这样的复杂度使得基于椭圆曲线的密码体制比传统的 RSA 更加难以破解。在 SM2 加密中,公钥和私钥的生成与传统的椭圆曲线加密类似。选择一个椭圆曲线和一个基点 P。使用私钥 d,计算公钥 P’ = d * P。私钥 d 保密,而公钥 P’ 可公开分发,用于加密数据。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1212

深度解构事务码 SQF:Support Query Framework 与 ABAP 静态分析实战

某制造企业在年度审计前,需要确认自定义发票过账程序 ZFI_INV* 系列是否存在硬编码公司代码与未捕获异常。技术团队在字段填入ZFI_INV*后,勾选与规则,执行扫描。SQF 生成的 ALV 报告列出 42 个警告,其中 17 条与抛出 CX_SY_NO_HANDLER 相关,8 条涉及动态 SQL 注入风险。结果导出至 Excel 供开发整改,并在 ATC 阶段验证修复。此过程较手工逐个执行 Code Inspector 节省超 80 % 时间。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 216

Java vbnullstring_VB中判断空的几种方法,Null, Missing, Empty, Nothing, vbNullString区别

vb6中存在几个虚幻的值:Null、Missing、Empty、Nothing、vbNullString。除了最后一个之外,每一个值都不能直接用“a=值”来判断。下面分别解释一下这几个值的含义。1、Null。Null指一个不合法的数据,判断一个变量是否为Null使用isNull函数。这种数据通常出现在三种情况下:(1)最简单的,函数直接返回Null给调用方。譬如Function DivideEx(...

weixin_30707165的博客 685

YOLOv8改进,YOLOv8主干网络替换为ShuffleNetV2

ShuffleNet V2的设计原则:1.减少内存访问成本:通过优化数据传输路径,减少内存访问延迟,提高整体运算速度。2.考虑平台特性:针对不同硬件平台的特性进行优化设计,确保在目标平台上的高效运行。3.结构简洁高效:采用简洁而高效的模块设计,降低计算复杂度,同时保持或提升模型的预测准确性。下图,以四种不同计算复杂度水平下的准确性(在ImageNet验证集上的分类),速度和FLOPs的测量结果。(a, c) 为GPU结果,批量大小为8。(b, d) 为ARM结果,批量大小为1。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1565

SQL入门(二)——奇怪的数值,微妙的差别

文章题目,为什么说是奇怪的数值呢?因为奇怪,所以引起了我的好奇心,让我想办法把它解决掉!        这里有一组奇怪的数值,他们虽然有相似的释义,但是在计算机中,它们又有微妙的差别。        这组奇怪的数值就是 Null   Empty   Nothing  vbNullString        首先,我们先看他们的词语释义,我们只要看它的名词解释就好了,因为一个词最根本的含义就是

幸运的梦之星 1290

2025届程序技术类笔试题

希尔排序在直接插入排序的基础上进行了改进,它通过比较相距一定间隔的元素来进行,各轮比较所用的距离随着算法的进行而减小,直到只比较相邻元素的最后一轮排序为止。某人逆着水流的方向向岸边划船,每次行进前进x米后需要休息一下,休息期间船会自行倒退y米,每次休息后再次行进,前进距离缩短1/5,若起始距离岸边为m米,问:能否到达岸上,需要行进多少次才能上岸。直接插入排序的原理是将第i个元素插入前面i-1个已排好序的记录中,将比第i个元素大的记录依次向后移动一个位置,将第i个元素插入空位。第二轮相邻比较,后移2次。

博客 595

ESP32-IDF开发之旅 网络篇⑩ Web配网

本文介绍了基于ESP32S3的Web配网实现方案。作者通过移植开源项目,在ESP32S3上实现了WiFi配置功能,包括AP模式创建、HTTP服务器搭建、NVS存储读写等核心功能。文章详细解析了代码结构,包含WiFi初始化、事件处理、NVS存储管理和HTML页面服务等关键模块。实现方案采用AP+STA双模式,支持通过网页扫描WiFi并保存配置信息,适用于物联网设备的网络配置场景。代码中使用了FreeRTOS任务、ESP-IDF事件组等技术,并提供了完整的错误处理和日志记录功能。

单片机菜鸟哥的博客 350

VBA提高篇34 Do循环_空值Empty/Nothing/Null/IsMissing

数值:0""变体类型:Empty对象变量:Nothing无法被赋予一个合理的变量值时:Null判空IsNull函数传递。

pigerr的博客 1376

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【VBA研究】如何在if中判断一个值为null的变量

作者:iamlaosong 做一个工具要求用户先在列表框中选择,然后再做相应的操作,如果未做选择,要给出提示,调试中发现,取列表框的值,假如未做选择,此时值为null(空),对其进行常规的判断是不行的,例如下面语句:     StationName = ListBox2.Value      If StationName=vbNullString Then 调试发现,上述if条件中无论

驽马十驾 才定不舍 2万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Java vbnullstring_VB中Null、Empty、Nothing及vbNullString的区别

Null:Null是一个象Integer或者String一样的变量类型,它表示一个没有合法数据的变量。这有别于zero、Nothing、Empty或者vbNullString。可以使用IsNull语句来判断表达式是否为Null:If IsNull(my_variable) Then ...Empty:这也是一个象Integer或者String一样的变量类型,它表示了一个还没有进行初始化的变量。它与...

weixin_29046611的博客 351

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

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

最近在做机房收费系统的时候,遇到这样一句代码。其实之前也遇到过,但是没有仔细去琢磨。这一琢磨不要紧,一琢磨问题就出来了。 Text1.text=”” 和这样一句代码text1.text=vbnullstring开始的时候没有仔细去想,当成是同样的意思,其实不是的。这样就牵出了null、empty、vbnullstring、nothing、“”等一系列看起来很神似的符号,...

weixin_30607029的博客 243

1 - 2

1 vbscript Prolog语法概要         1.1 程序示例        1.2 变量,常量,数据类型        1.3 流程控制        1.4 函数和过程        1.5 多文件工程   2. 开发工具   3. 开发库和获取帮助这篇文章对VBScript作一简要介绍,这类文章很多,本篇的切入点是,从C/C++语言开发者的角度来学习VBScript,对基本概念

do_loop的专栏 478

VBA入门:让Excel自动处理重复工作的真实路径

Excel VBA 是一种嵌入式自动化技术,通过操作Excel对象模型(Application、Workbook、Worksheet、Range等)实现任务批量化。其核心原理在于将人工操作转化为可复用、可调试、可维护的代码逻辑,而非简单录制点击动作。相比Power Query等声明式工具,VBA在处理非结构化、字段不固定、需上下文判断的‘脏数据’时具备更强的过程控制力与错误捕获能力。它不追求全自动替代,而是构建‘人机协同’的工作流,典型价值体现在财务报表生成、跨表数据合并、发票信息提取等高频重复场景。本文聚

weixin_30357231的博客 339

excel vba 字典使用方法学习

字典的索引(keys)不能重复,常用字典来去重,字典是一个二维数组,其中keys不重复,每个keys对应一个值(item),值可以重复。vba中常用字典代替vlookup。 '字典学习 '声明本模块中默认的比较方式,只能是text或者binary;如果不声明的的话,默认为二进制比较,但是对VBA字典中的比较方式没有影响。。 'Option Compare Text '文本比较,不区分大小...

jzkwf705的博客 6780

【VBA 中Is Nothing 和 IsMissing】的用法区别

特征IsMissingIs Nothing判断目标检测Variant 类型可选参数是否被调用者传入(参数“缺失”)检测对象变量是否指向有效的对象实例(对象“未初始化/已释放”)适用类型仅Variant类型的可选参数(Optional声明)仅对象类型变量(如WorkbookRangeDictionary、自定义类)核心逻辑判断“参数是否被传入”(而非参数值)判断“对象变量是否绑定实例”(而非对象值)返回值布尔型(True/False)布尔型(True/False)依赖前提1. 参数必须。

qq_33764107的博客 1043

一些经常会用到的vbscript检测函数

'----------------------------------------------------------------------------------------------------' Function Name : Length' Function Desc : 返回字符串的实际长度, 一个汉字算2个长度'-----------------------------------...

weixin_34233679的博客 78

QTP日常详细函数库

以下为QuickTest和Robot都适用函数获取当前日期Public Function Get_Data() Dim currentDate currentDate = Date 

saviola1999的专栏 592
上一篇: ASP完美优化(不断更新)
下一篇: 关于asp函数和过程的变量是值还是指针
lsf5921
博客等级 码龄19年 12粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值