Arrays 在VBA中将excel数据存储到多个数组中?

Arrays 在VBA中将excel数据存储到多个数组中?,arrays,vba,excel,Arrays,Vba,Excel,我在一张excel表格中有几组数据。我想将每一组数据存储到它们自己的数组中,这样我就可以在之后进行必要的计算。我看到了如何获取数据并将其存储到一组数据的数组中,但是我如何在A列、B列、C列中遍历这些数据。我想使用某种循环遍历不同的列,但是由于这些列是由字母而不是数字定义的,所以我不确定如何增加它们 此外,如果有人知道一些关于如何从vba代码中绘制数据的好资源,那也将不胜感激。我所看到的一切都是针对旧版本的excel(我使用的是excel 2016) 谢谢 以下是链接中提到的代码: Dim Ar

我在一张excel表格中有几组数据。我想将每一组数据存储到它们自己的数组中,这样我就可以在之后进行必要的计算。我看到了如何获取数据并将其存储到一组数据的数组中,但是我如何在A列、B列、C列中遍历这些数据。我想使用某种循环遍历不同的列,但是由于这些列是由字母而不是数字定义的,所以我不确定如何增加它们

此外,如果有人知道一些关于如何从vba代码中绘制数据的好资源,那也将不胜感激。我所看到的一切都是针对旧版本的excel(我使用的是excel 2016)

谢谢

以下是链接中提到的代码:

Dim Ar as Variant

Ar = Sheets("Sheet").Range("A1:A10000").Value

如果要在整个列中循环

Dim c As Long
For c = 1 To 10
    Debug.Print Worksheets("Sheet1").Columns(c).Address
Next c
或通过列,但例如仅第5至15行

Dim c As Long
For c = 1 To 10
    Debug.Print Worksheets("Sheet1").Range(Cells(5, c), Cells(15, c)).Address
Next c

但是根据你在问题中给出的链接,你也可以将一个完整的范围读入一个二维数组,这应该比逐列读取还要快

Dim DirArray As Variant
DirArray = Worksheets("Sheet1").Range("A1:C5").Value 'for a range
甚至一次超过一整列,就像

DirArray = Worksheets("Sheet1").Range(Columns(1), Columns(3)).Value 'for column 1 to 3
然后像这样访问它

Debug.Print DirArray(2, 3) 'where 2 = row 2 and 3 = column C
请注意,如果第一列和第一行不是1,则数组中的计数可能不同。例如,如果您使用

DirArray = Range("B2:C10").Value
Debug.Print DirArray(1, 1) 'this is the value of Range("B2")

计数会根据第一行和第一列的偏移量进行移位。

请将问题文本所指的代码部分添加到问题()中,否则您的问题不清楚您到底在问什么。我认为您已经回答了自己的问题。此外,列A=1、B=2、C=3等等,您可以或者您可以使用
Offset
I编辑以包含上面链接@P中的代码ᴇʜ您是否考虑过使用
单元格(行索引,列索引)
这也可以用来定义一个范围,如
范围(单元格(r,c),单元格(r,c))
行和列索引都是数字,因此您可以很容易地循环。或者,如果您想访问整个列,请使用列B的
.Columns(2)
。谢谢!这确实有助于理解如何做到这一点。只是一个快速的后续问题,我如何忽略第一行(如果它有标题)?@Anonymous此问题无法在这里的评论中回答。只有当你将它引用到特定的代码行时,它才能被回答。您将需要提出一个新问题,在那里添加您尝试过的代码,然后专门向该代码片段提问。