Frage : Gesamte Reihe kopieren und in ein neues Arbeitsblatt Excel VBA kleben

Hallo dort, kann

Hoping jemand mit dem Code unten unterstützen. Ich bin an VBA neu und habe Weisen erforscht, dieses auf dem Netz zu erzielen und dieses ist, was ich bis jetzt.

Sub SendtoStorage ()
Dim LastRow als Integer
LastRow = Blätter habe („ResultsLog“). Range („B“ u. Rows.Count). Ende (xlUp). Select

'Copy gesamtes Row'< Br/>, wenn c nichts Then
LastRow = LastRow + 1
olData.EntireRow.Copy _
Bestimmungsort ist: =Sheets („Storage“). Range („A“ u. LastRow)
Ende If
Next
Ende With

I morgens versuchend, die gesamte Reihe vom Blatt „ResultsLog“ zu kopieren, Strecke „B4: Y253“, wenn die Reihen bevölkert werden. Ich wünsche die Reihen zum Bestimmungsortblatt „die Lagerung“ kopiert werden, die in A2 beginnt. Daten werden fortwährend diesem hinzugefügt, also muss sie finden, dass die folgende leere Reihe und die Daten Spalte A etc. im
Once zu kleben, das diese Daten, es kopiert worden sind, den Inhalt in „ResultsLog“ löschen muss, sich erstrecken " B4: Y253“.

Hope dieses ist sinnvoll. Ich bin sicher, dass ich mit meinem Code total falsch bin, aber wirklich versuchte, ihm gehen zu geben. Wenn ich den Recorder benutze, funktioniert es nicht.

Antwort : Gesamte Reihe kopieren und in ein neues Arbeitsblatt Excel VBA kleben

Dieser Code arbeitet für, was Sie wünschen, ich kann es ändern, um nach unbelegteren Werten, im Augenblick ihm zu suchen, nur, das es überprüft, um zu sehen, wenn die Werte in Spalte B leer sind. Ich habe etwas Testdaten mit gelegentlichen unbelegten Zellen in der Spalte B. beigefügt. Das Makro nimmt an, dass Sie eine Spaltenüberschrift auf dem Speicherblatt haben.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
VorcheckForValue ()

Schwaches currentSheet als Arbeitsblatt, WS als Arbeitsblatt
Schwaches currentSelection als Strecke, Ziel als Strecke, subTarget als Strecke
Schwaches screenUpdate, wie Boolesch

screenUpdate = Application.ScreenUpdating
Application.ScreenUpdating = falsch

'das Programm notiert das gegenwärtige Arbeitsblatt und die gegenwärtige Vorwähler
'so am Ende des Programms können Sie das Programm zu zurück gehen lassen
'wo Sie ursprünglich waren
currentSheet = Application.ActiveSheet einstellen
currentSelection = Application.Selection einstellen
Ziel = Strecke einstellen („B4: B253“)

Für jedes subTarget im Ziel
    Wenn subTarget.Value <> "" dann
        Strecke (subTarget, subTarget.End (xlToRight)). Kopie
        Arbeitsblätter („Lagerung“). Auserwählt
        Strecke („A1“). Aktivieren
                
        'überprüfen, um zu sehen, wenn die Zelle A2 leer ist, wenn sie nicht dann leer ist
        'Crtl im Wesentlichen betätigen + unten der Pfeil, zum der letzten Zelle dynamisch zu finden
        Wenn ActiveCell.Offset (1, 0). Wert <> "" dann
            Selection.End (xlDown). Auserwählt
        Beenden wenn
                
        'die Adresse der aktiven Zelle durch 1 Reihe versetzen und dann kleben,
        'wenn Sie nicht dies taten, würden Sie die alten Werte überschreiben
        ActiveCell.Offset (1, 0). Aktivieren
        'alles kleben
        ActiveCell.PasteSpecial xlPasteAll
        Arbeitsblätter („ResultsLog“). Auserwählt
    Beenden wenn
Zunächst

Application.CutCopyMode = falsch
currentSheet.Select
currentSelection.Select

Application.ScreenUpdating = ScreenUpdating

currentSheet einstellen = nichts
Einstellen WS = nichts
currentSelection einstellen = nichts
Ziel einstellen = nichts
subTarget einstellen = nichts

Unterseeboot beenden
Weitere Lösungen  
 
programming4us programming4us