2016-07-26 36 views
0

Ich habe Code, der eine leere Zeile jede X Menge von Datensätzen füllt. Was ich tun möchte, ist ein Code, der dann in eine Zelle in diesen leeren Zeilen einen statischen Text einfügt. Hier ist, was ich für das Hinzufügen von leeren Zeilen habe ... Code nicht alles meins Ich nahm es aus dem Internet. Was ich tun muss, ist statischen Text in die Leerzeile einzufügen, die er erstellt. Dann paddeln Sie weiter und fügen Sie alle 50 Datensätze hinzu. Vielen Dank!Füllen Sie den statischen Text in die Zelle alle X Anzahl der Zeilen

********** 
Sub InsertRowEveryXrows() 

    Dim rw As Long 
    Dim lr As Long 
    Dim cnt As Long 
    lr = Range("A" & Rows.Count).End(xlUp).Row 
    rw = 2 
    cnt = 1 
    Do 
    If cnt = 50 Then 
     Rows(rw).Insert Shift:=xlDown 
     cnt = 1 

    Else 
     cnt = cnt + 1 
    End If 
    rw = rw + 1 
    Loop While rw <> lr 
End Sub 
***************** 

Antwort

0

Das einzige, was Sie tun müssen, ist es fragen, wenn es um 51 machen cnt und fügen Sie Ihre statischen Text (unter der Annahme Spalte es 1 ist), wie folgt aus:

Sub InsertRowEveryXrows() 

    Dim rw As Long 
    Dim lr As Long 
    Dim cnt As Long 
    lr = Range("A" & Rows.Count).End(xlUp).Row 
    rw = 2 
    cnt = 1 
    Do 
    If cnt = 50 Then 
     Rows(rw).Insert Shift:=xlDown 
     cnt = 1 
    Else 
     if cnt = 51 then 
      cells(rw,1) = "your static text" 
     else 
     cnt = cnt + 1 
     End If 
    End If 
    rw = rw + 1 
    Loop While rw <> lr 

End Sub 

Sag mir, wie es geht, ich hoffe es hilft !

0

Ich fügte Kommentare in den Code ein, um zu zeigen, was passierte, aber das funktionierte für mich und sollte ein bisschen schneller sein.

Public Sub Sample() 
Dim WkSht As Worksheet 
Dim LngLR As Long 'Last Row 
Dim LngCR As Long 'Current Row 

'Connect to the worksheet 
Set WkSht = ThisWorkbook.Worksheets("Sheet1") 

    'Get the last row so we know when to stop 
    LngLR = WkSht.Range("A" & WkSht.Rows.Count).End(xlUp).Row 

    LngCR = 51 '51 to account for the first row being a header 

    'Keep adding the 50th row until when would end up past the last row 
    Do Until LngCR > LngLR 

     'Add the new row 
     WkSht.Rows(LngCR).Insert Shift:=xlDown 

     'Populate it 
     WkSht.Range("A" & LngCR) = "Your static text" 

     'Increase the last row as it will now be one more 
     LngLR = LngLR + 1 

     'Got to the next 50th 
     LngCR = LngCR + 50 
    Loop 

Set WkSht = Nothing 

End Sub 
  • ich dem Arbeitsblatt verbunden als Variable wie diese gute Praxis ist, was Ihr tut jetzt gut funktioniert, aber es kann verwirrend sein zu lesen und wenn der Code größer Mehrdeutigkeit Dinge, die Sie machen Ursache wird passieren habe nicht erwartet.
  • Ich erhöhte 50 auf einmal anstelle von 1, technisch machen es 50 mal schneller, aber es ist alles eine Unschärfe auf heutigen Computern :)
  • Ihr Code nicht Rechnung für die letzte Reihe, die sich jedes Mal nach unten bewegt Du hast eine Zeile hinzugefügt.