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.

Poprzedni Artykuł Następny Artykuł

Najważniejsze Wskazówki