Excel - Zkopírujte data vedle buňky a vložte ji níže
Problém
Data jsou uspořádána níže:
buňka | A | B | C ------------------------------------------------- --- 1 | Ahoj Dobrý den Dopoledne 2 | Nápověda | Prosím | 3 | Díky Uvidíme se sbohem
Potřebuji, aby se tato data stala tímto formátem
buňka | A | B | C ------------------------------------------------- - 1 | Ahoj Dobrý den Dopoledne 2 | | Ráno | ---------------------------------------------- 3 | Nápověda | Prosím | ---------------------------------------------- 4 | Díky Uvidíme se Bye 5 | | Bye | ----------------------------------------------
Uvědomuji si, že je třeba vzít v úvahu některé podmínky:
Chcete-li zkontrolovat, zda C1 obsahuje data nebo ne,
- 1) pokud ano, zkopírujte data do buňky B2 (buňka relativně vlevo a pod C1)
Poté podtrhněte kontinuálně pod buňku B2
- 2) pokud ne, podtržení a pokračujte dalším řádkem
- 3) pokračovat, dokud poslední buňka, která obsahuje data
Řešení
- Nejdříve zkopírujte data do listu2.
- Pak zkuste "test" makra
Sub test () Dim j jako celé číslo, k jako celočíselné pracovní listy ("sheet1") Aktivace j = rozsah ("A1") Konec (xlDown) .Row Pro k = j Do 1 kroku -1 Pokud buňky (k, " C ")" "Pak Pokud k = 1 Pak buňky (k + 1, " A ") EntireRow.Insert Buňky (k, " c ") Buňky (k + 1, " B ") Buňky (k + 2) EntireRow.FormulaArray = "'-----------------" Konec Sub End If Cells (k, "A") EntireRow.Insert Cells (k + 1, "C") Řezané buňky (k + 2, "B") Buňky (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 () Pracovní listy (" sheet1 ") Cells.Clear Worksheets (" sheet2 ") Cells.Copy Listy (" sheet1 ") Rozsah (" A1 ") Konec Sub
Všimněte si, že
Díky venkat1926 za tento tip na fóru.