Filter函数和ReDim语句讲解,以及VBA中利用动态数组排重的方法一

2022-10-11 22:09:43 235 0
魁首哥

大家好,我们今日继续讲解 VBA 代码解决方案的第61讲内容:在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法。在上一讲中我们讲了使用数组函数将单元格中的文本进行分隔后写入到工作表中的方法,那么问题来了,如果文本中含有大量的重复值,在写入时也会将重复值写入到工作表中,此时,如果我们要剔除重复值,该怎么办?用VBA的方法该如何做到呢?我在这讲和下一讲中将解答这个问题,并提供给读者一个可以测试的实例。今日先讲这个内容要用到的知识点。

一 :Filter函数:这个函数返回一个下标从零开始的数组,该数组包含基于指定筛选条件的一个 字符串 数组的子集,语法如下:

Filter(sourcesrray, match[, include [, compare]])

参数

a) sourcesrray是必需的,要执行搜索的一维字符串数组。

b) match是必需的,要搜索的字符串。

c) include是可选的, Boolean 值,表示返回子串是否包含match字符串。如果参数include是True,Filter函数返回的是包含match参数子字符串的数组子集。如果参数include是False,Filter函数返回的是不包含match参数子字符串的数组子集。

d) compare是可选的,所使用的字符串比较类型。

二:ReDim语句,这个语句在过程级别中使用,用于为动态数组变量重新分配存储空间,语法如下:

ReDim [Preserve] varname(subscripts) [As type] [, varname(subscripts) [As type]]

参数

a) Preserve是可选的,关键字,当改变原有数组最末维的大小时,使用此关键字可以保持数组中原来的数据。

b) varname是必需的,变量的名称。

c) subscripts是必需的,数组变量的维数,最多可以定义 60 维的多维数组,使用下面的语法;[lower To] upper [,[lower To] upper]

讲到这里,有的人会提出这样的问题,什么是过程呢?有兴趣的朋友可以看我之前写的一篇文章:什么是宏?什么是过程?这里定义更为精确的给出:那么什么是过程呢?就是将输入转化为输出的一组活动。在VBA中过程两种一是Sub过程和 Function 函数过程。也就是说每组开始为SUB的活动都是一个过程,或者说每组开始为Function的活动也都是一个过程。ReDim语句就是在这个级别使用语句。

今日内容回向:

1: Filter函数的作用是什么?

2:ReDim语句的作用是什么?

3 什么是过程?

收藏
分享
海报
0 条评论
235
上一篇:PHP创建、删除、授权文件夹和读写文件的方法V1.2 下一篇:面试集锦:盘点PHP魔术方法的使用(一)

本站已关闭游客评论,请登录或者注册后再评论吧~

忘记密码?

图形验证码