Sloučení párových sloupců do jednoho je případ, kdy máme několik párů sloupců s odpovídajícími si položkami vedle sebe, a naším cílem je spojit je do jednoho seznamu. Více napoví obrázek.
A takto vypadá převod zdrojových dat (List1) do cílové podoby (List2):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | Sub SlouceniParovychSloupcu() Dim wshZdroj As Worksheet Dim wshCil As Worksheet Dim rngOblast As Range Dim rngTempBunka1 As Range Dim rngTemp As Range Dim intTemp As Integer Dim intRadek As Integer Dim intPocetSloupcu As Integer 'zamezeni prekreslovani a prepoctu Application.ScreenUpdating = False Application.Calculation = xlCalculationManual 'prirazeni zdrojoveho listu do promenne Set wshZdroj = Worksheets("List1") 'prirazeni ciloveho listu do promenne Set wshCil = Worksheets("List2") 'vycisteni ciloveho listu wshCil.UsedRange.Clear 'prirazeni kopirovane oblasti do promenne Set rngOblast = wshZdroj.Cells(1).CurrentRegion With wshCil 'kopie na druhy list rngOblast.Copy .Cells(1) 'pocet sloupcu intPocetSloupcu = .Range(.Cells(1), _ .Cells(1).End(xlToRight)).Cells.Count 'prvni volny radek prvni podoblasti s parovymi hodnotami intRadek = .Range(.Cells(1), .Cells(1).End(xlDown)).Cells.Count + 1 'zpracovani podoblasti s parovymi hodnotami For i = 2 To intPocetSloupcu \ 2 'prvni bunka podoblasti Set rngTempBunka1 = .Cells(1, 2 * i - 1) 'pocet paru v podoblasti intTemp = .Range(rngTempBunka1, rngTempBunka1.End(xlDown)).Cells.Count - 1 'prevzeti podoblasti Set rngTemp = rngTempBunka1.Offset(1, 0).Resize(intTemp, 2) 'presun podoblasti rngTemp.Cut .Cells(intRadek, 1) 'nasledujici volny radek intRadek = intRadek + intTemp Next i 'vycisteni radku hlavicek .Range(.Cells(1, 3), .Cells(1, 3).End(xlToRight)).Clear End With 'povoleni prepoctu a prekreslovani Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True End Sub |
Občas je potřeba docílit pravého opaku. To když kupříkladu máme páry odpovídajících si hodnot (pro představu takový česko-anglický slovníček), a chceme při tisku šetřit papírem, tj. umístit více párů na list A4. O tom ale zas někdy jindy.
Příloha
slouceni_parovych_sloupcu.zip
Související články
Rozřazení bloků dat do podoby seznamu
Převod seznam – tabulka