2016-09-12 1 views
1

Ich habe das folgende Makro, das ein Array von Daten für jede alternative Zeile einfügt.Ein "Array" zwischen Zeilen in Excel einfügen

Das funktioniert gut, aber meine Daten ändert sich die ganze Zeit, so ist es nicht die beste Methode.

Ich möchte meine Daten in Sheet1 haben, aber meine alternative Zeile in Sheet2, die die spezifischen Daten enthält.

Wie kann ich diese Zeile bearbeiten:

Range(Cells(emptyRow, "A"), Cells(emptyRow, "F")).Value = Array("COLA", "COLB", "COLC", "COLD", "COLD", "COLF") 

Von spezifischen Daten Einfügen des Bereichs auf sheet2 Reihen A1 bis AF Einfügen?

Antwort

0

Angenommen, Ihre Anfrage ist die Reichweite auf Sheet2 von Zelle A1 einfügen F1 Zelle sollte die folgende Arbeit:

Sub inserttexteveryonerow() 
    Dim Last As Integer 
    Dim emptyRow As Integer 
    Last = Range("A" & Rows.Count).End(xlUp).Row 
    For emptyRow = Last To 2 Step -1 
     If Not Cells(emptyRow, 1).Value = "" Then 
      Rows(emptyRow).Resize(1).insert 
      Range(Cells(emptyRow, "A"), Cells(emptyRow, "F")).Value = Worksheets("Sheet2").Range("A1:F1").Value 
     End If 
    Next emptyRow 
End Sub 

Allerdings wäre es eine gute Idee sein, den Code neu zu schreiben, eine zu verwenden, mit Block, wird die machen es einfacher, richtig zu identifizieren, welche Blätter Sie beziehen sich auf:

Sub inserttexteveryonerow() 
    Dim Last As Integer 
    Dim emptyRow As Integer 
    With Worksheets("Sheet1") 
     Last = .Range("A" & .Rows.Count).End(xlUp).Row 
     For emptyRow = Last To 2 Step -1 
      If Not .Cells(emptyRow, 1).Value = "" Then 
       .Rows(emptyRow).Resize(1).insert 
       .Range(.Cells(emptyRow, "A"), .Cells(emptyRow, "F")).Value = Worksheets("Sheet2").Range("A1:F1").Value 
      End If 
     Next emptyRow 
    End With 
End Sub 

(richtig qualifiziert, welches Blatt Sie sich beziehen, wenn Range Verwendung Cells, etc, verhindert eine Los von Fehlern später.)

Verwandte Themen