Excel - Skopiuj dane obok komórki i wklej ją poniżej
Kwestia
Mam dane uporządkowane jak poniżej:
komórka | A | B | C ------------------------------------------------- --- 1 | Cześć | Cześć | Rano 2 | Pomoc | Proszę | 3 | Dzięki | Do zobaczenia PA
muszę sprawić, by te dane stały się tym formatem
komórka | A | B | C ------------------------------------------------- - 1 | Cześć | Cześć | Rano 2 | | Rano | ---------------------------------------------- 3 | Pomoc | Proszę | ---------------------------------------------- 4 | Dzięki | Do zobaczenia Cześć 5 | | Cześć | ----------------------------------------------
Zdaję sobie sprawę, że niektóre warunki muszą wziąć pod uwagę:
Aby sprawdzić, czy C1 zawiera dane, czy nie,
- 1) jeśli tak, skopiuj dane do komórki B2 (komórka stosunkowo lewa i poniżej C1)
Następnie podkreśl nieprzerwanie pod komórką B2
- 2) jeśli nie, podkreślenie i kontynuuj w następnym rzędzie
- 3) kontynuuj aż do ostatniej komórki zawierającej dane
Rozwiązanie
- Najpierw skopiuj dane w arkuszu2.
- Następnie spróbuj makro „test”
Sub test () Dim j As Integer, k As Integer Worksheets ("sheet1"). Aktywuj j = Range ("A1"). End (xlDown) .Row Dla k = j To 1 Step -1 Jeśli Cells (k, " C ")" "Następnie Jeśli k = 1 Następnie komórki (k + 1, " A "). Komórki EntireRow.Insert (k, " c "). Komórki cięte (k + 1, " B ") Komórki (k + 2, "A"). EntireRow.FormulaArray = "'-----------------" Wyjście Sub End jeśli komórki (k, "A"). EntireRow.Insert Cells (k + 1, „C”). Wytnij komórki (k + 2, „B”) Komórki (k + 3, „A”). EntireRow.FormulaArray = „” --------------- - „Inne komórki (k, „ A ”). EntireRow.Insert Cells (k + 2, „ a ”). EntireRow.FormulaArray =” '----------------- „Zakończ jeśli dalej k Zakończ sub Sub undo () Arkusze („ arkusz1 ”). Cells.Clear Worksheets („ arkusz2 ”). Cells.Copy Worksheets („ arkusz1 ”). Range („ A1 ”) End Sub
Zauważ, że
Podziękowania dla venkat1926 za tę poradę na forum.