VBA 二维数组整体直接赋值的方法小结

13 篇文章 1 订阅
8 篇文章 2 订阅

一维数组可以通过这样一行代码来整体赋值:arr = Array("你", "我", "他", 1, 2, 3, "aa", "bb", "cc")
那么,如果想给二维数组采用类似的方法来整体赋值,要怎么办呢?

arr=array("你", "我", "他"  ; 1,2, 3 ; "aa", "bb", "cc"),好像不行。

一番搜索,网上给出的答案有如下:

第一种:使用[{}]将字符串括起来,字符串行间用分号(;)分割,列间用逗号(,)分割:

arr = [{"你", "我", "他"; 1, 2, 3; "aa", "bb", "cc"}]

第二种:使用array函数进行构造,但要转置两次后方可得到结果

arr=Array(Array("你", "我", "他"),Array(1, 2, 3),Array("aa", "bb", "cc"))

arr=Application.Transpose(Application.Transpose(arr))

第三种:使用evaluate,大部分情况下 等同于[]

 arr = Application.Evaluate("{""你"", ""我"",""他"";1 , 2 , 3 ;""aa"", ""bb"" , ""cc""}")

特殊情况,

以上三种情况,当一行代码写起来太长,不方便检查,需要按多行来写时,第1种办不到,第2种代码太多,第3种稍有优势。

数字类型的,可以按如下方法书写:

    arr= application.Evaluate("{1,3;" _
        & "2,30;" _
        & "3,50;" _
        & "4,80}")

文本类型的,记得双引号由一对变两对书写:

    arr = Application.Evaluate("{""你"", ""我"",""他"";" _
        & "1 , 2 , 3 ;" _
        & """aa"", ""bb"" , ""cc""}")

最后总结一下三种方法的特点:

 

序号代码示意代码特点字符串数量(个)有文本时字符串双引号数量代码行数
1arr=[{  字符串  }]精简1一对1
2arr=Array(Array(字符串1),Array(字符串2),Array(字符串3))复杂一对
3arr = Application.Evaluate("{ 字符串 }“)普通1,多两对

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值