当前位置:首页 > 天道酬勤 > 正文内容

vba定义动态字符串数组并赋值(vba定义全局变量)

张世龙2021年12月20日 04:44天道酬勤880

你好。 今天继续介绍VBA数组和词典解决方案的第19讲“动态数组的定义和制作”。 在VBA中,数组可以分为固定数组和动态数组,也称为静态数组和动态数组。 我们以前定义的数组都是静态数组。 静态数组的特征是有大小的数组。 如果事先知道数组的大小,可以直接声明为静态数组。 固定序列定义方法: DIM序列名称(下一次为上一次)。

但是,如果事先不知道数组的大小,该怎么办? 如果不知道数组的大小,则必须将数组声明为动态数组,如果需要指定数组的大小,请使用ReDim语句分配数组的实际元素数量。

1、动态数组是可以调整大小的数组,通过在数组名称后面加上空括号来声明。 示例:

Dim arrSheetName () as字符串

2 .定义动态数组后,必须使用ReDim设置动态数组的上边界和下界,并为数组重新分配存储空间。

3、可以使用ReDim语句反复改变数组的元素数。

让我们来看看动态数组的使用示例。

例如,某工作表的c列中存储着学生的名字。 现在需要将名为“王”的学生存储在数组arr中。 c排的姓王的学生有30人还是50人预先不知道。 因此,在定义时代码如下所示。

代码:

Sub MyNZsz_2()

Dim arr ()和字符串

eRow=[c65536].end(3).row '最后一个非空单元格行号

j=1'数组索引号

xcount=application.worksheet function.countif ([ c 13360 c 65536 ],'王* ' ] ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )而言)为王的学生

redimarr(1toxcount ) '重新定义数组大小,元素有xcount个

For i=1 To erow

if左(细胞(I,3 ) .值,1 )='王' Then

为ARR(j )=cells(I,3 ).Value '数组元素赋值

j=j 1'索引号加1

终点国际机场

下一个I

清除[d1:d65536].Clear '原始数据

[D1].resize(xcount,1 )=在单元格区域中输入应用程序.工作区函数.传输(arr ) '数组

最终辅

代码屏幕快照:

代码解密:

1dimarr(asstring定义动态数组。

2 xcount=application.worksheet function.countif ([ c 13360 c 65536 ],'王* ' ] ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )为王的学生是什么

redimarr(1toxcount ) '重新定义数组大小,元素有xcount个

通过求姓王的学生的数量可以知道数组的上下界

3介绍application.worksheet function.transpose (arr )数组arr的内容的倒置填充。 对于一维数组,中间用逗号分隔。 如果想纵向填充,倒排。 这可以理解为与以前的工作表排列的表现相结合。 逗号为列,分号为分店。

执行结果:

今天的内容改变方向;

1什么是动态数组?

2动态数组和静态数组有什么区别?

扫描二维码推送至手机访问。

版权声明:本文由花开半夏のブログ发布,如需转载请注明出处。

本文链接:https://www.zhangshilong.cn/work/25386.html

分享给朋友:

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。