我正在尝试为Excel中的VBA中的二维整数数组分配两个整数“ 1”和“ 2”:
Dim arrPeople(4, 4) As Integer
arrPeople(0,0) = 1,2
我尝试将整数1保存到数组的第一个维度并将整数2保存到第一个数组项的第二个维度的行– arrPeople(0,0) = 1,2
–引发语法错误,我还没有找到告诉我原因的例子?
(我不是试图使用欧洲约定的小数点或任何小数点插入“ 1,2”或“ 1.2”。最终,我想将电子邮件地址存储在数组的一维中,以及另一个维度中来自网页URL的文章ID号,但认为将问题简化为仅存储整数会有所帮助。)
答案 0 :(得分:2)
不能将两个值“ 1,2”分配给数组中的单个位置,例如(0,0)
。我建议将1和2分别分配给它们的适当位置,就像:
arrPeople(0,0) = 1
arrPeople(1,0) = 2
答案 1 :(得分:0)
@elliotsvensson是正确的:没有一种方法可以将二维数组作为数据结构来完成您想要的操作。您可能需要其他数据结构。例如,Variant
的一维数组可以在每个插槽中存储另一个一维数组,类似于C存储数组的方式:
Option Explicit
Option Base 0
Sub example()
Dim arrPeople(4) As Variant
arrPeople(0) = Array(1, 2) ' Assign a whole row at once
Debug.Print arrPeople(0)(0) ' prints 1. Note (0)(0) indexing rather than (0,0).
End Sub
作为另一个示例,要存储电子邮件地址和文章ID,可以使用Collection
从其中一个映射到另一个。您可以将两个Collection
用于双向地图。或者,正如您在对elliot答案的评论中指出的那样,可以使用两个一维数组。