我有一些我正在修改的现有代码。此代码从预先存在的工作表表中创建行集合。它创建了一个大型二维集合,每列中都有不同的信息。有一个单独的类模块声明每列的数据类型。
该代码通过依次遍历每个项目将二维集合写入新工作表。我以前从未使用过集合,并且想一次性将集合写入工作表。当表有很多记录时,当前代码需要很长时间。
有没有办法将整个集合转换为二维数组,或者我可以一次性编写二维数组?或者有没有办法将整个集合写入工作表,就像使用二维数组一样?我试图搜索这个并且到目前为止没有成功。任何一般点将不胜感激!
下面是一些示例代码,注释以粗体显示,以说明如何使用该集合。
定义类模块,命名为 TableEntry
Public Item1 As String
Public Item2 As String
Public Item3 As String
Public Item4 As Integer
Public Item5 As Integer
主要例程 - 创建集合、填充集合、将集合写入工作表
Sub MainRoutine()
Dim table As Collection
Set table = New Collection
Call FillCollection(File As String, ByRef table As Collection)
Call WriteCollectionToSheet(ByRef table As Collection)
子例程 1 - 填充集合
Dim wb As Workbook
Set wb = Workbooks.Open(File)
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
Dim R As Range
Set R = ws.Range("A2")
Dim e As TableEntry
For i = 1 To 20
Set e = New TableEntry
e.Item1 = R.Offset(i + 1, 0).Offset(0, 0)
e.Item2 = R.Offset(i + 1, 0).Offset(0, 1)
e.Item3 = R.Offset(i + 1, 0).Offset(0, 2)
e.Item4 = R.Offset(i + 1, 0).Offset(0, 3)
e.Item5 = R.Offset(i + 1, 0).Offset(0, 4)
table.Add e
Next i
Next ws
子例程 2 - 将集合写入工作表