一维数组可以通过这样一行代码来整体赋值: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""}")
最后总结一下三种方法的特点:
序号 | 代码示意 | 代码特点 | 字符串数量(个) | 有文本时字符串双引号数量 | 代码行数 | 1 | arr=[{ 字符串 }] | 精简 | 1 | 一对 | 1 | 2 | arr=Array(Array(字符串1),Array(字符串2),Array(字符串3)) | 复杂 | 多 | 一对 | 多 | 3 | arr = Application.Evaluate("{ 字符串 }“) | 普通 | 1,多 | 两对 | 多 |
|