2017-08-08 196 views
-2

我想創建一個宏,當點擊一個名爲「運行公式」的按鈕時,它複製從I12開始的特定塊單元格,然後向下移動28行並粘貼公式從I40中的細胞塊。然後循環做150次。 注意:我通過錄制宏並複製並粘貼150次來完成這項工作,但我想編輯代碼變得更簡單。 我從來沒有使用VBA之前,但是這是我到目前爲止有:VBA雖然循環Excel宏

Sub Button6_Click() 
    Button6_Click Macro 
    Range("I12:AG22").Select 
    Selection.Copy 
    Dim i As Integer 
    i = 0 
    Do While i < 150 
    Row 40 + i * 28 
    i = i + 1 
    Loop 
    End Sub 
+0

你得到了什麼錯誤?請參見[如何創建最小,完整和可驗證的示例](https://stackoverflow.com/help/mcve)。 – jmoon

+0

您發佈的代碼不會完成您所描述的內容。循環除了增加一個變量('Row')之外什麼都不做。它在增加後不會對該變量做任何事情。爲了完成任何事情,它必須以某種方式影響細胞。甚至沒有任何努力去處理你所複製的單元格。 –

+0

請詳細描述您希望完成的最終結果 – jsotola

回答

1

使用一個for循環可以節省一些打字。

而且避免使用.Select.Activate

而且進入的父片總是分配給任何範圍或細胞對象的習慣。

Sub Button6_Click() 
'Button6_Click Macro 

Dim i As Long 

With Worksheets("Sheet1") 'Change to the name of the sheet 
    .Range("I12:AG22").Copy 
    For i = 0 to 149 
     .Cells(40 + i * 28,"I").PasteSpecial xlPasteFormulas 
    Next i 
End With 
End Sub