Excel VBA:显示数组?

我正在做一个工作项目,我碰到了一堵墙。 我试图自动化一些格式来加快一个过程。 在Sheet1上,在G2到W21范围内有一个表格。 包含在此表中的数据由用户通过用户表单input。 数据input后,我用这个数据驱动出Sheet2格式化。 到目前为止,我已经想出了如何处理这张表的列G&H的方式,我想要的。 我不知道如何处理列I:M和O:W。

这是我到目前为止的代码:

Dim LineItems As Range, Cell As Range Dim linearr() As Variant Dim datasetarr() As Variant Dim i As Integer Dim j As Integer Dim accountnum As Range Dim accountnumrng As Range Set LineItems = Sheet1.Range("H2:H21") Set DataSets = Sheet1.Range("G2:G21") For Each Cell In LineItems If Len(Cell.Value) > 0 Then i = i + 1 ReDim Preserve linearr(1 To i) linearr(i) = Cell.Value End If Next Cell For Each Cell In DataSets If Len(Cell.Value) > 0 Then j = j + 1 ReDim Preserve datasetarr(1 To j) datasetarr(j) = Cell.Value End If Next Cell Set accountnumrng = Sheet2.Range("B6:B1000").SpecialCells(xlCellTypeConstants, 23) For Each accountnum In accountnumrng.Cells accountnum.Offset(1, 1).Cells(1, 1).Resize(UBound(linearr), 1).Value = Application.Transpose(linearr) accountnum.Offset(1, 0).Cells(1, 1).Resize(UBound(datasetarr), 1).Value = Application.Transpose(datasetarr) Next accountnum 

这里是Sheet1上的表格的图片。 用红色概括了我正在尝试使用的列

在这里输入图像说明

我基本上只想扩展到目前为止我所了解的内容。 任何帮助将不胜感激。

以下是Sheet2现在的样子 在这里输入图像说明

以下是我想要Sheet2的样子 在这里输入图像说明

没有理由使用数组。 范围是数组的本质。

这应该做你想要的:

 Dim accountnum As Range Dim accountnumrng As Range Dim lastrow As Long Dim sze As Long lastrow = Sheet1.Range("G2").End(xlDown).Row sze = lastrow - 2 + 1 Set accountnumrng = Sheet2.Range("B6:B1000").SpecialCells(xlCellTypeConstants, 23) For Each accountnum In accountnumrng.Cells accountnum.Offset(1, 8).Resize(sze, 9).Value = Sheet1.Range("O2:W" & lastrow).value accountnum.Offset(1, 0).Resize(sze, 7).Value = Sheet1.Range("G2:M" & lastrow).value Next accountnum