网站首页 > 知识剖析 正文
【分享成果,随喜正能量】人有德,不仅是一个人的修养,更藏着一个人的福气。在这个世界,我们的内心逐渐在失去什么,那种原本柔软善良,利他互助、和真正彼此温暖的悲悯之心。。
《VBA经典应用69例》(10178981),是我推出的第九套教程,教程是专门针对初级、中级学员在学习VBA过程中可能遇到的案例展开,这套教程案例众多,紧贴“实战”,并做“战术总结”,以便大家能很好的应用。教程的目的是要求大家在实际工作中要利用好VBA。本套教程共三册六十九个专题,今日内容是教程的应用11内容:VBA字节数组函数StrPtr()
应用11 利用VBA判断数组是否为空
我们这个专题的内容是有关数组的知识,数组一直是VBA知识点中一个比较关键的所在。我们在学习过程中一定要了解什么是数组,数组在具体程序应用过程中的意义是什么?当相同数据类型的项的列表或集合存储在连续的内存位置时,我们称之为数组;数组是软件开发中广泛用于存储数据的有用对象。
4 字节数组的函数StrPtr()
我们这部分讲解一个字节数组函数StrPtr(),这个函数是我各套教程中首次讲解到的,希望大家能理解和掌握。
- Byte变量:Byte变量存储为一个不带符号的 8 位(1 个字节)数字,值范围为 0-255。Byte数据类型可用于包含二进制数据。
- 字节数组:这个数组只不过是一个序列或字符。字符串可以直接分配给字节数组。数组的两个元素用于为字符串中的字符分配空间。
StrPtr函数:该函数返回真正的UNICODE字符串缓冲区的地址。也就是字符串变量在内存的地址。
- StrPtr函数主要用来产生高效的UNICODE API调用。在VB4,UNICODE形式的API函数的调用必须借助于Byte数组;
- StrPtr还能用于优化ANSI API函数的调用。在调用时使用StrConv和StrPtr就能避免将一个字符串变量多次传递给函数以及为每个调用而执行转换操作所造成的系统负担;
- StrPtr还是唯一能直观地告诉你空字符串和null字符串的不同的方法。对于null字符串(vbNullString),StrPtr的返回值为0,而对于空字符串,函数的返回值为非零。
- StrPtr在 64 位版本上返回 LongPtr,在 32 位版本(4 字节)上返回 Long。
实例3 StrPtr函数的利用
这个实例中我们会看到字符串的内存地址,如下代码:
Sub mynzD()
'声明字节数组和字符串
Dim arr1() As Byte
Dim samplestr As String
'赋值字符串
samplestr = "Coffee"
'检查数组是否为空。strptr()如果数组为空,则返回0。
Application.SendKeys "^g"
Debug.Print StrPtr(arr1) = 0
'将字符串直接分配给字节数组
arr1() = samplestr
'查看数组中存储的内容
For i = LBound(arr1) To UBound(arr1)
Debug.Print arr1(i)
Next
'检查数组是否为空。strprtr()如果数组为空,则返回0。
Debug.Print StrPtr(arr1) = 0
End Sub
代码的截图:
代码的讲解:
1)字符串可以直接分配给字节数组。数组的两个元素用于为字符串中的字符分配空间。最初数组是空的,因此strptr(arr1)返回true。
2) For i = LBound(arr1) To UBound(arr1)
Debug.Print arr1(i)
Next
以上代码将输出数组每个元素的Ascii值,“Coffee”的代码如下:
“C”的Ascii值为67
Ascii空字符
“o”的Ascii值为111
Ascii空字符
“f”的Ascii值为102
Ascii空字符
“f”的Ascii值为102
Ascii空字符
“e”的Ascii值为101
Ascii空字符
“e”的Ascii值为101
Ascii空字符
最后,数组不是空的,因此strprtr(arr1)返回false。
最后我们看一下代码的输出结果:
结论:在VBA中,除了字节数组的strprtr()函数外,没有直接的方法来查找数组是否为空。然而,我们可以结合自己的逻辑来检查数组的是否为空,这里“空”的意思在于用户。它可以是依据合并数组元素字符串的长度,也可以依据数组是否占用内存。但本讲的意义在于要大家理解Join函数、Trim函数、Len函数、strprtr函数的应用。
今日内容回向:
1 如何理解Join函数、Trim函数、Len函数、strprtr函数的应用的意义?
2 如何理解数组为空?
本讲内容参考程序文件:应用011.xlsm
我20多年的VBA实践经验,全部浓缩在下面的各个教程中:
【分享成果,随喜正能量】物随心转,境由心造。人这一生,境遇如何,全由我们的心做主,智者,会把伤痛转化成快乐,把压力转化成动力,一路拼荆斩棘的成全自己,成就自己。。
猜你喜欢
- 2025-05-03 sql中常用的字符串函数详解(sql中的字符类型)
- 2025-05-03 提取最后一个规格,你会吗?(提取最后一位数函数)
- 2025-05-03 统计分析中的平均值都不会计算,那就真的Out了
- 2025-05-03 瞬间搞定大量数据!这4个Excel函数太牛了
- 2025-05-03 CELL函数的公式及应用案例详解(cell函数的使用方法及实例)
- 2025-05-03 VLOOKUP函数开挂用法:多表多文件多区域查找大揭秘
- 2025-05-03 《MySQL必知必会》_笔记08(mysql必知必会和sql基础教程)
- 2025-05-03 Excel最牛查找函数VLOOKUP:3分钟告别手动翻表,菜鸟秒变高手!
- 2025-05-03 WPS查找能手VLOOKUP函数使用方法讲解
- 2025-05-03 Excel中的替换神技,SUBSTITUTE函数使用技巧详解
- 最近发表
-
- Zion无代码,小程序授权和解绑,无代码开发的关键
- 韦德二儿子“变”女儿,韦德支持儿子,与魔术师约翰逊经历相同
- 新鞋速报|Swoosh 面世 50 年!Nike Waffle Trainer 2致敬 Nike 的起源
- 李宁韦德之道2低帮版"踏冰" 球鞋曝光
- Zion又壮了!首秀顶翻1.9亿内线!英格拉姆单臂隔扣
- 音乐手游《zion载音》迎更新 钢琴白发少女免费带回家
- AI 应用赚钱工具哪家强?Coze 和 Zion 对比分析
- 韦德12岁次子完成变性手术,心情雀跃身姿妖娆
- 韦德晒全家福,他穿浴袍像中东土豪,二儿子扎雅比尤尼恩还性感
- 每日NBA球星上脚球鞋「5月12日」(近期nba球星上脚球鞋)
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)