Ich habe FileA mit Rohdaten. Die blauen Zellen sind Header, die mit A-J bezeichnet sind. Die pfirsichfarbenen Zellen stellen die Daten dar, bei denen es sich typischerweise um Text handelt, der variiert und nicht konstant ist und mit 1 bis 10 gekennzeichnet ist.Kopieren und Einfügen Datenabgleich
Datei A:
Datei B:
Das zweite Blatt enthält die Header in blau, wie oben beschrieben.
Ich konnte einen VBA-Code nicht schreiben, um den angegebenen Header zu einer Spalte zu passen und die folgenden Daten in der nächsten verfügbaren Zelle einzufügen. I.e. (A1, A5, A8, A11, A14, A17 sind auf ihre jeweiligen Header abgestimmt und eingefügt in das zweite Blatt in A2, A3, A4, A5, A6, A7)
Sie werden feststellen, dass in den Rohdaten es ist nicht vollständig konstant, Zeilen 4-5, 10-12, 13-14 fehlen Daten für Spalte F, was es schwieriger macht, in einem großen Datensatz übereinzustimmen.
der aktuelle Code, der nahe kommen, zu helfen, aber nicht funktioniert wird unten geschrieben:
Dim wbk As Workbook
Set wbk = ThisWorkbook
Set ws = wbk.Sheets(1)
Set ws2 = wbk.Sheets(2)
Dim cell As Range
Dim refcell As Range
Application.ScreenUpdating = False
ws.Select
For Each cell In ws.Range("A1:Z1")
cell.Activate
ActiveCell.Offset(1, 0).Copy
For Each refcell In ws2.Range("A1:Z1")
If refcell.Value = cell.Value Then refcell.Paste
Next refcell
Next cell
Application.ScreenUpdating = False
Zusatz:
Dim wbk As Workbook
Set wbk = ThisWorkbook
Set ws = wbk.Sheets(1)
Set WS2 = wbk.Sheets(2)
Dim cell As Range
Dim refcell As Range
Dim Col As Long
Application.ScreenUpdating = False
ws.Select
For Each cell In ws.Range("A1:Z15000")
cell.Activate
Col = Application.WorksheetFunction.Match(WS2.Range("Cell").Value.Rows("1:1"), False)
For Each refcell In WS2.Range("A1:Z1")
Cells(Rows.Count, Col).End(xlUp).Offset(1, 0).Resize(Rng.Rows.Count).Value = Rng.Value
Next refcell
Next cell
Application.ScreenUpdating = True
Wo geht der Code falsch? Wie funktioniert es nicht? Es kann helfen, mit 'F8' durch den Code zu gehen und zu sehen, wo der Loop einige Informationen verpasst. – BruceWayne
In Ordnung, also habe ich versucht den Code am unteren Rand der Seite hinzugefügt, um eine Zelle unter der Titelzeile zu wählen und es zu kopieren, aber es endet mit einem Laufzeitfehler. Es wäre am besten, den Code zu ignorieren, wenn er verwirrend ist, und für mich einfach zu fragen, ob Sie irgendeinen Code irgendwo gesehen haben, der Ihnen hilft, eine Situation wie die beschriebene zu sortieren. –
Im Wesentlichen habe ich ein Rohdatenblatt mit den Daten 1-10 (die variieren) und Spalten (die fest sind) mit der Bezeichnung A-J. Ich muss zum Beispiel A1: A2 auswählen und den A1-Wert im Bereich Sheet2'A1: J1 (Offensichtlich Spalte A) angleichen und dann den zweiten Wert, den wir ausgewählt haben (A2), an den unteren Rand der entsprechenden Spalte setzen. Beispiel: Blatt 1 G10: G11 ----> Der G10-Wert entspricht den Werten von Blatt 2 von A1: J1 und entspricht Zelle H1 und der Wert in G11 wird in die letzte leere Zelle in Spalte H eingefügt . –