Pro informace o výuce Excelu klikněte zde
Dotaz:
Dobrý den! Narazil jsem tady na takovýto problém, potřeboval bych pod tabulku vložit řádek makrem, který by současně zkopíroval vzorce z řádku nad ním. Jde to nějak? Děkuji za každou radu. |
Jedno z možných řešení:
Sub KopievzorcuzPredchazejicihoRadku() Dim r As Long, i As Long, pocR As Long, konR As Long 'první řádek výběru pocR = Selection.Cells(1, 1).Row 'poslední řádek výběru konR = Selection.Cells(Selection.Rows.Count, 1).Row 'Pokud je počáteční řádek = 1 tak ukonči If pocR = 1 Then Exit Sub 'Vypnutí překreslování obrazovky a přepočtu With Application .ScreenUpdating = False .Calculation = xlCalculationManual End With 'vloží řádky For r = pocR To konR Rows(r).Insert Next r 'projde buňky od 1 do poslední neprázdné buňky v předcházejícím řádku For i = 1 To Cells(pocR - 1, Columns.Count).End(xlToLeft).Column 'pokud je vzorec If Cells(pocR - 1, i).HasFormula Then 'použití AutoFill = rozšíření tažením za úchyt (tímto způsobem se dají řešit i posloupnosti) Cells(pocR - 1, i).AutoFill Destination:=Range(Cells(pocR - 1, i), Cells(konR, i)), Type:=xlFillDefault Else 'pokud není vzorec zkopíruj pouze formáty Cells(pocR - 1, i).AutoFill Destination:=Range(Cells(pocR - 1, i), Cells(konR, i)), Type:=xlFillFormats End If Next i 'zapnutí překreslování obrazovky a přepočtu With Application .ScreenUpdating = True .Calculation = xlCalculationAutomatic End With End Sub