排行
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
中国数据库
向量数据库
时序数据库
实时数据库
搜索引擎
空间数据库
图数据库
数据仓库
大调查
2021年报告
2022年报告
年度数据库
2020年openGauss
2021年TiDB
2022年PolarDB
2023年OceanBase
首页
资讯
活动
大会
学习
课程中心
推荐优质内容、热门课程
学习路径
预设学习计划、达成学习目标
知识图谱
综合了解技术体系知识点
课程库
快速筛选、搜索相关课程
视频学习
专业视频分享技术知识
电子文档
快速搜索阅览技术文档
文档
问答
服务
智能助手小墨
关于数据库相关的问题,您都可以问我
数据库巡检平台
脚本采集百余项,在线智能分析总结
SQLRUN
在线数据库即时SQL运行平台
数据库实训平台
实操环境、开箱即用、一键连接
数据库管理服务
汇聚顶级数据库专家,具备多数据库运维能力
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
我的订单
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
资讯
活动
大会
课程
文档
排行
问答
我的订单
首页
专家团队
智能助手
在线工具
SQLRUN
在线数据库即时SQL运行平台
数据库在线实训平台
实操环境、开箱即用、一键连接
AWR分析
上传AWR报告,查看分析结果
SQL格式化
快速格式化绝大多数SQL语句
SQL审核
审核编写规范,提升执行效率
PLSQL解密
解密超4000字符的PL/SQL语句
OraC函数
查询Oracle C 函数的详细描述
智能助手小墨
关于数据库相关的问题,您都可以问我
精选案例
新闻资讯
云市场
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
专家团队
智能助手
精选案例
新闻资讯
云市场
微信扫码
复制链接
新浪微博
分享数说
采集到收藏夹
分享到数说
首页
/
VBA字节数组函数StrPtr()
VBA字节数组函数StrPtr()
VBA语言専攻
2022-11-11
122
【
分享成果,随喜正能量】人有德,不仅是一个人的修养,更藏着一个人的福气。在这个世界,我们的内心逐渐在失去什么,那种原本柔软善良,利他互助、和真正彼此温暖的悲悯之心。。
《VBA经典应用69例》(
10178981
),是我推出的第九套教程,教程是专门针对初级、中级学员在学习VBA过程中可能遇到的案例展开,这套教程案例众多,紧贴“实战”,并做“战术总结”,以便大家能很好的应用。教程的目的是要求大家
在实际工作中要利用好VBA
。本套教程共三册六十九个专题,今日内容是教程的应用11内容:VBA字节数组函数StrPtr()
应用1
1
利用V
BA
判断数组是否为空
我们这个专题的内容是有关数组的知识,数组一直是VBA知识点中一个比较关键的所在。我们在学习过程中一定要了解什么是数组,数组在具体程序应用过程中的意义是什么?当相同数据类型的项的列表或集合存储在连续的内存位置时,我们称之为数组;数组是软件开发中广泛用于存储数据的有用对象。
4
字节数组的函数
StrPtr()
我们这部分讲解一个字节数组函数StrPtr(),这个函数是我各套教程中首次讲解到的,希望大家能理解和掌握。
l
Byte变量:Byte变量存储为一个不带符号的 8 位(1 个字节)数字,值范围为 0-255。Byte数据类型可用于包含二进制数据。
l
字节数组:这个数组只不过是一个序列或字符。字符串可以直接分配给字节数组。数组的两个元素用于为字符串中的字符分配空间。
StrPtr函数:该函数返回真正的UNICODE字符串缓冲区的地址。也就是字符串变量在内存的地址。
l
StrPtr函数主要用来产生高效的UNICODE API调用。在VB4,UNICODE形式的API函数的调用必须借助于Byte数组;
l
StrPtr还能用于优化ANSI API函数的调用。在调用时使用StrConv和StrPtr就能避免将一个字符串变量多次传递给函数以及为每个调用而执行转换操作所造成的系统负担;
l
StrPtr还是唯一能直观地告诉你空字符串和null字符串的不同的方法。对于null字符串(vbNullString),StrPtr的返回值为0,而对于空字符串,函数的返回值为非零。
l
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实践经验,全部浓缩在下面的各个教程中:
【
分享成果,随喜正能量】物随心转,境由心造。人这一生,境遇如何,全由我们的心做主,智者,会把伤痛转化成快乐,把压力转化成动力,一路拼荆斩棘的成全自己,成就自己。。
vba
字节数组
字符串函数
vba数组
数组
文章转载自
VBA语言専攻
,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
领墨值
有奖问卷
意见反馈
客服小墨