自动化Excel宏

时间:2014-08-27 12:57:00

标签: vb.net excel

这是我使用excel中的记录宏功能生成的宏。

    Range("A11").Select
    Selection.Cut
    Range("B11").Select
    ActiveSheet.Paste
    Range("A12").Select
    Selection.Cut
    Range("D11").Select
    ActiveSheet.Paste
    Range("A13").Select
    Selection.Cut
    Range("E11").Select
    ActiveSheet.Paste
    Range("A14").Select
    Selection.Cut
    Range("F11").Select
    ActiveSheet.Paste
    Range("A12:A14").Select
    Range("A14").Activate
    Selection.Delete Shift:=xlUp
    Range("A12").Select

我对Excel或visual basic不太满意。 我想运行此代码大约400行。所以我需要进一步自动化。 所以这是我的计划: 我会用一些破码。我不知道如何用visual basic编写代码,那么有人可以更正代码以使语法正确吗? ' N'是一个变量,我稍后会设置

    Range("An").Select
    Selection.Cut
    Range("Bn").Select
    ActiveSheet.Paste
    Range("A(n+1)").Select
    Selection.Cut
    Range("Dn").Select
    ActiveSheet.Paste
    Range("A(n+2)").Select
    Selection.Cut
    Range("En").Select
    ActiveSheet.Paste
    Range("A(n+3)").Select
    Selection.Cut
    Range("Fn").Select
    ActiveSheet.Paste
    Range("A(n+1):A(n+3)").Select
    Range("A(n+3)").Activate
    Selection.Delete Shift:=xlUp
    Range("A(n+1)").Select

1 个答案:

答案 0 :(得分:1)

关于循环,请考虑一小部分代码:

Range("A11").Select
Selection.Cut
Range("B11").Select
ActiveSheet.Paste

假设我们希望对第12行到第578行重复此操作。我们将使用循环:

Sub Aiman()
    Dim n As Long
    For n = 11 To 578
        Range("A" & n).Select
        Selection.Cut
        Range("B" & n).Select
        ActiveSheet.Paste
    Next n
End Sub

For Next 之间的代码块执行n = 11,12,13,.... 578

通过删除选择 s

,可以进一步优化逻辑