2016-02-04 99 views
1

我在網絡上的其他地方找到了此代碼,並將其調整爲符合我的需求。重新格式化宏使其重複

我有20000行要通過。我如何修改此代碼以重複每105行,並將結果放在前一行下面的相同列中。我還需要以百分比格式逐行數據。

Sub SumSectorWeight() 
    Dim rng As Excel.Range 
    Dim arrProducts() As String 
    Dim i As Long 

    Set rng = Sheet2.Range("A" & i & ":B" & i + 104) 

    arrProducts = getSumOfCountArray(rng) 

    Sheet2.Range("E1:E1").Value = Array("Sector", "Sector Weight") 

    ' go through array and output to Sheet2 
    For i = 2 To 5000 Step 105 
     Sheet2.Cells(i + 2, "E").Value = arrProducts(0, i) 
     Sheet2.Cells(i + 2, "F").Value = arrProducts(1, i) 
    Next 

End Sub 
+0

'每105行重複'是指'rng'?如果您發現上述代碼並對其進行了修改,則只需15分鐘即可找到每x行重複的代碼。 – findwindow

+0

我一直在寫for循環,使我能夠自動化但不成功。我也無法整合現有的代碼,這些代碼會將現有代碼重複x行。你有任何建議findwindow? – engineertoanalyst

+3

'對於i = 1到5000步驟105',然後'Set rng = Sheet2.Range(「A」&i&「:B」&i + 104)' –

回答

0

我猜測問題是相關的代碼不在循環內。 請參閱\請嘗試以下操作:

Sub SumSectorWeight() 

    Dim Rng As Excel.Range 
    Dim arrProducts() As String 
    Dim i As Long 

    Sheet2.Range("E1:E1").Value = Array("Sector", "Sector Weight") 
    ' go through array and output to Sheet2 
    For i = 2 To 5000 Step 105 
     Set Rng = Sheet2.Range("A" & i & ":B" & i + 104) 
     arrProducts = getSumOfCountArray(Rng) 
     Sheet2.Cells(i + 2, "E").Value = arrProducts(0, i) 
     Sheet2.Cells(i + 2, "F").Value = arrProducts(1, i) 
    Next 

End Sub