Excel - Kopieren Sie Daten neben eine Zelle und fügen Sie sie unten ein
Problem
Ich habe Daten wie folgt angeordnet:
Zelle | A | B | C ------------------------------------------------- --- 1 | Hi | Hallo | Morgen 2 | Hilfe | Bitte | 3 | Vielen Dank Wir sehen uns | Tschüss
Ich muss diese Daten machen, um dieses Format zu werden
Zelle | A | B | C ------------------------------------------------- - 1 | Hi | Hallo | Morgen 2 | | Morgen | ---------------------------------------------- 3 | Hilfe | Bitte | ---------------------------------------------- 4 | Vielen Dank Wir sehen uns | Tschüss 5 | | Tschüss ----------------------------------------------
Mir ist klar, dass einige Bedingungen berücksichtigt werden müssen:
Um zu überprüfen, ob C1 Daten enthält oder nicht,
- 1) Wenn ja, kopieren Sie die Daten in die Zelle B2 (eine Zelle relativ links und unterhalb von C1)
Unterstreichen Sie dann kontinuierlich unter Zelle B2
- 2) Wenn nein, unterstreichen Sie und fahren Sie mit der nächsten Zeile fort
- 3) Fahren Sie fort bis zur letzten Zelle, die Daten enthält
Lösung
- Kopieren Sie zuerst die Daten in Sheet2.
- Dann probiere das Makro "test"
Untertest () Dim j As Integer, k As Integer Worksheets ("sheet1"). Aktiviere j = Range ("A1"). End (xlDown) .Row For k = j To 1 Step -1 If Cells (k, " C ")" "Dann Wenn k = 1 Dann Zellen (k + 1, " A "). EntireRow.Insert Zellen (k, " c "). Cells (k + 1, " B ") Cells (k + 2, "A"). EntireRow.FormulaArray = "'-----------------" Sub End If-Zellen beenden (k, "A"). EntireRow.Insert Cells (k + 1, "C"). Zellen ausschneiden (k + 2, "B"). Zellen (k + 3, "A"). EntireRow.FormulaArray = "'--------------- - "Else Cells (k, " A "). EntireRow.Insert Cells (k + 2, " a "). EntireRow.FormulaArray =" '----------------- "End If Next k End Sub Sub undo () Arbeitsblätter (" sheet1 "). Cells.Clear Arbeitsblätter (" sheet2 "). Cells.Copy Arbeitsblätter (" sheet1 "). Range (" A1 ") End Sub
Beachten Sie, dass
Danke an venkat1926 für diesen Tipp im Forum.