2015-12-02 99 views
2

我正在爲一個工作項目工作,我碰到了一堵牆。我正試圖自動化一些格式來加速進程。在Sheet1上,有一個G2到W21的表格。包含在此表中的數據由用戶通過用戶窗體輸入。數據輸入後,我使用這些數據驅動Sheet2格式化。到目前爲止,我已經想出瞭如何處理這張表的列G & H我想要的方式。我無法弄清楚如何處理列I:M和O:W。Excel VBA:顯示數組?

下面是代碼,我拿出這麼遠:

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表的圖片。概述紅色是我試圖用

enter image description here

我基本上只是想什麼我到目前爲止想通了擴大合作的列。任何幫助將不勝感激。

下面是什麼Sheet2的樣子,現在 enter image description here

下面是想什麼我Sheet2的樣子 enter image description here

+0

你能告訴什麼是Sheet2的此刻看起來像一張照片? –

+1

看起來您正在超越電子表格的正常使用。你問的問題可以很容易地處理,但是隨着時間的推移,我認爲你會希望你已經在數據庫應用程序或數據庫支持的內部網上完成了這個任務。考慮一下需要添加什麼東西或將工作簿合併以獲得年度數字的道路。只是一個想法... – Beengie

+0

@ScottCraner我剛剛添加了幾張圖片 –

回答

1

沒有理由使用數組的照片。範圍是數組的本質。

這應該做你想要什麼:

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 
+0

非常感謝,這工作完美。不知道爲什麼我試圖讓這麼難。 –

+0

@GrahamChandler很高興我能幫上忙。如果路線較短,我們都會陷入下面的線程中。 –

+0

你說得對! –