2017-08-08 122 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