2009-02-27 9 views
1

Je souhaite insérer une liste (ci-dessous: générateur, tour de contrôle, etc.) à plusieurs reprises dans une feuille de calcul. Il doit être inséré tous les deux rangs (après chaque Turbine) et décaler une colonne comme indiqué ci-dessous. Je ne sais pas comment écrire une macro pour le faire automatiquement. Toute aide est appréciée.Macro pour insérer des informations entre les lignes de manière répétée

TURBINE A-2 
    Generator 
    Control Tower 
    Brakes 
    Pitch System 
    Hydraulic System 
    Cooling System 
    Oil Filtration System 
    Lighting System 
    Ascent System 
    Scada Systems 
    Nacelle Cover 
    Cable System 
    Fire System 
    Blades 
TURBINE A-3 
    Generator 
    Control Tower 
    Brakes 
    Pitch System 
    Hydraulic System 
    Cooling System 
    Oil Filtration System 
    Lighting System 
    Ascent System 
    Scada Systems 
    Nacelle Cover 
    Cable System 
    Fire System 
    Blades 
TURBINE A-4 
TURBINE A-5 
TURBINE A-6 
TURBINE A-7 

Répondre

0

Cela devrait faire l'affaire:

Public Sub AddEntries() 
    Dim InsertionRange As Range 
    Dim HeaderRow As Integer 
    Dim RowIndex As Integer 

    Const ListSize = 14 
    Dim ListEntries(1 To ListSize) As String 
    ListEntries(1) = "Generator" 
    ListEntries(2) = "Control Tower" 
    ListEntries(3) = "Brakes" 
    ListEntries(4) = "Pitch System" 
    ListEntries(5) = "Hydraulic System" 
    ListEntries(6) = "Cooling System" 
    ListEntries(7) = "Oil Filtration System" 
    ListEntries(8) = "Lighting System" 
    ListEntries(9) = "Ascent System" 
    ListEntries(10) = "Scada Systems" 
    ListEntries(11) = "Nacelle Cover" 
    ListEntries(12) = "Cable System" 
    ListEntries(13) = "Fire System" 
    ListEntries(14) = "Blades" 

    HeaderRow = 1 
    While (Cells(HeaderRow, 1).Value <> "") 
     Rows(Trim$(Str$(HeaderRow + 1)) & ":" & Trim$(Str$(HeaderRow + ListSize))).Insert shift:=xlDown 

     For RowIndex = 1 To ListSize 
      Cells(RowIndex + HeaderRow, 2).Value = ListEntries(RowIndex) 
     Next RowIndex 

     HeaderRow = HeaderRow + ListSize + 1 
    Wend 
End Sub 

Je suppose que les entrées de TURBINE sont tous dans la première colonne du fichier Excel.

Questions connexes