vba读取excel数据到数组
时间: 2024-10-13 10:03:41 浏览: 75
Excel-VBA实用技巧范例-数组.zip
在VBA (Visual Basic for Applications) 中,你可以使用Microsoft Excel的对象模型来读取Excel工作表的数据并将其存储在数组中。以下是一个基本步骤的例子:
1. **引用对象库**:
首先,你需要通过`Tools > References`菜单,在“COM Components”列表中选择“Microsoft Excel Object Library”,确保它已经被引用。
2. **创建工作簿对象**:
使用 `Set wb = Workbooks.Open("文件路径")` 来打开你想要读取的工作簿,将“文件路径”替换为实际的Excel文件路径。
3. **选择工作表**:
确定你要操作的工作表,例如 `Set ws = wb.Worksheets("Sheet1")`,这里的 "Sheet1" 为你需要的数据所在的sheet名称。
4. **获取数据范围**:
选择你想要读取的数据范围,如 `Set rng = ws.Range("A1:C10")`(这里假设数据从A1单元格开始,行数列数自定)。
5. **创建数组**:
定义一个适当的数组来保存数据,如 `Dim data(1 To rng.Rows.Count - 1, 1 To rng.Columns.Count)`。这将创建一个二维数组,大小与你选择的范围相匹配。
6. **读取数据到数组**:
使用 `For Each row In rng.Rows` 循环遍历每一行,并使用 `.Cells(i, j)` 获取每个单元格的值,然后赋值给数组,例如 `data(i, j) = row.Cells(j).Value`。
7. **关闭工作簿**:
当数据读取完成后,记得关闭工作簿 `wb.Close SaveChanges:=False`。
完整的示例代码可能会看起来像这样:
```vba
Sub ReadDataToArray()
Dim wb As Workbook
Dim ws As Worksheet
Dim rng As Range
Dim data() As Variant
' Step 1 & 2
Set wb = Workbooks.Open("C:\path\to\your.xlsx")
Set ws = wb.Worksheets("Sheet1")
' Step 3
Set rng = ws.Range("A1:C10")
' Step 4
ReDim data(1 To rng.Rows.Count, 1 To rng.Columns.Count)
' Step 5 & 6
For i = 1 To rng.Rows.Count
For j = 1 To rng.Columns.Count
data(i, j) = rng.Cells(i, j).Value
Next j
Next i
' Step 7
wb.Close SaveChanges:=False
End Sub
```
阅读全文