专栏首页Excel和Access学习笔记VBA数组(五)数组函数2

VBA数组(五)数组函数2

大家好,上节介绍了VBA数组中的LBound和UBound等函数,本节介绍剩余的数组函数,Erase函数、Split函数和Join函数。

Erase函数

Erase函数的用处已经体现在字面上,像一个橡皮擦。可以重新初始化静态数组的元素或者释放动态数组的存储空间。

在Erase语句中只需要给出数组名即可,不能带括号和下标。语法格式如下:

Erase 数组名1,数组名2,数组名3, ... ...数组名n

Erase函数语句对静态数组和动态数组采取不同的行为,对于静态数组使用Erase语句时数组仍然存在,但起内容被清空,而动态数组使用Erase语句时将删除整个数组结构并释放动态数组。

1、静态数组

下面举例说明,首先是静态数组:

数组中声明了静态数组MyArr1(5)为整型数据类型和MyArr2(5)字符串数据类型。,通过循环给两个数组赋值,

立即窗口显示MyArr1(2)的值为2,MyArr2(2)的值为第2。然后用Erase函数清除数组,清除数组后MyArr1(2)值为0,而清除数组之MyArr2(2)值为 “ ” 即空值。所以实际上Erase函数对不同数据类型的静态数组影响不同,具体如下表:

2、动态数组

对于动态数组,示例如下图:

数组中声明了动态数组MyArr1()为整型数据类型和MyArr2()字符串数据类型。通过redim语句重新定义数组的大小,然后通过循环给两个数组赋值,

立即窗口显示MyArr1(2)的值为2,MyArr2(2)的值为第2。然后用Erase函数清除数组,再次运行debug.print,程序会在Erase语句后报错。因为此时动态数组在使用Erase语句后已经不存在了。

Split函数

Split函数把一个文本字符串按照指定的分隔符分开,返回一个一维Variant变体型数组,该数组的最小索引号为0为下界。

Split函数也算是一种创建数组方式。它的语法为:

变体型变量=split(expression,[delimiter] [,limit] [,compare])

它的四个参数,通常使用前两个。后两个了解即可。

1、参数expression必需,为String型,即要拆分成数组的字符串。

2、参数delimiter可选,参数为拆分的分隔符,如果省略则使用空格做为分隔符。

3、参数limit可选,为Long型,要返回的字符串数,通常省略不指定。

4、参数compare可选,指定比较的方法。(不常用,后面会用示例简单说明。)

下面通过简单的示例来演示下,将“www.google.com”按“. ”来拆分。

示例中首先声明了Arr1为变体型变量,变量i为整形变量。

然后通过split函数将字符串www.google.com按.号拆分成数组,返回Arr1的一维数组。该数组一维的索引号下届为0。(这个不受Option Base语句的影响。)

然后通过循环从0,也可以用LBound(arr1)开始到UBound(Arr1)即数组的上界,循环在立即窗口中显示数组中的每个元素,比较简单。

函数中的第三参数limit为返回的字符串数,通常是不指定的。下面通过示例简单介绍下如何使用:

如果将上面示例修改下。在Split函数中加入第三参数limit参数为2,即要求拆分成两个字符串。

Split函数第一个按"."字符拆开之后为“www”,后面一段整体"google.com"作为一个字符串,因为已经达到两个字符串。第二个"."不会再拆分。

第四参数compare可选,是指定比较的方法,有以下三种。默认为vbBinaryCompare。

第四参数主要的用处是在拆分分隔符时,如果用默认的vbBinaryCompare是区分字母大小写,而如果用vbTextCompare是不区分大小写的。下面通过示例简单演示下:

示例中对于同样的"ABCabcABC"的字符串,都将“a”作为分隔符去拆分。第一个Split函数选择默认的vbBinaryCompare是区分字母大小写的。那么只有“a”一个分隔符,会拆分成两个“ABC”和“bcABC”两个字符。

而第二个Split函数选择vbTextCompare是不区分大小写的,那么"A"和"a"都是分隔符,所以分割的结果是第一个为空值“ ”,第二个为“BC”,第三个为“bc”,第四个为“BC。两个参数值就决定是否区分大小写。

Join函数

上面介绍Split函数是将字符串分割,然后返回一个一维数组。那么Join函数正相反,Join函数是将一个一维数组里的元素使用指定的分隔符连接成一个新的字符串返回。

它的语法如下:

字符串变量=Join(sourcearray,[delimiter])

1、参数sourcearray必需,为String型或者Variant型,指定包含被连接的元素的数组。下届可以是任意值。

2、参数delimiter可选,为String字符串型,用来连接数组各元素的分隔符。如果没有指定该参数,那么使用空格作为分隔符。

Join函数相对较简单,下面通过简单示例进行介绍:

示例中声明了Str1和Str2为字符串型变量,Arr1为变体型。首先通过Array函数创建了Arr1数组。

通过Join函数用"和"(注意字符串型需要加引号),连接Arr1中的元素返回给Str1变量。第二个Join函数省略了第二参数,即默认用空格连接Arr1中元素返回给Str2变量。


端午节快乐

本节主要介绍了Erase函数,Split函数和Join函数,VBA数组中的函数介绍完毕,后续会介绍动态数组等内容,祝大家粽子节快乐。

本文分享自微信公众号 - Excel和Access学习笔记(excel-note),作者:无言之月

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • VBA数组(三)数组赋值

    大家好,上节介绍了在使用数组之前如何声明数组,本节就来介绍静态数组如何赋值。(动态数组会单独一节讲解)

    无言之月
  • VBA数组(一)基础知识

    大家好,前面介绍过VBA变量,可以通过它来访问数据。但对于大量数据时候,通过声明变量就显得太繁琐,此时就可以通过数组来访问数据解决。

    无言之月
  • VBA数组(四)数组函数

    VBA中操作数组的函数主要有以下几个,LBound函数和UBound函数、Array函数、IsArray函数、Erase函数、Split函数、Join函数,后面...

    无言之月
  • 【利用Python进行金融数据分析】数据的筛选和选取

    pd.set_option("display.width",1000) url ="https://raw.githubusercontent.com/jok...

    光点神奇
  • python列表、元组、字典

    列表是由一序列特定顺序排列的元素组成的。可以把字符串,数字,字典等都可以任何东西加入到列表中,列表中的元素之间没有任何关系。列表也是自带下标的,默认也还是从0开...

    py3study
  • python第十六课——外部函数and内部函数

    1.外部函数&内部函数 内部函数: 定义在某个函数的内部,就是内部函数; 【注意事项】: 1).内部函数可以随意使用它外部函数中的内容 2).外部函数...

    hankleo
  • [编程经验]python2和python3的区别总结

    最近涨粉涨的厉害啊,那天看刚破800,今天打开又有32个新粉丝,有点开心,哈哈哈。说实话,看的人多的话,是我坚持下去最大的动力。。。 = = = print("...

    用户1622570
  • Cloud时代DBA的DevOps最佳实践 - SQL 审核

    感谢IT168记者崔月对于嘉年华大会嘉宾,江苏移动专家戴建东的访谈,以下转载的是访谈实录。我们认为在Cloud时代的DBA,DevOps的最佳实践就是SQL审核...

    数据和云
  • JS-高程3(更新中...)

    xing.org1^
  • 拥有数据不再重要,懂得利用才是王道

    大数据时代,手握海量数据已是企业常态。如何充分利用数据并对加以挖掘和利用才是赢在未来的王道。在与数百家企业协作的过程中,英特尔总结了如何通过人工智能、机器学习以...

    CSDN技术头条

扫码关注云+社区

领取腾讯云代金券