Powielanie zaznaczonych wierszy
by vbatools on Sep.26, 2011, under Excel, Porady
Procedura realizuje kopiowanie zaznaczonych wierszy w ilości podanej w komunikacie inputbox wywołane po jej uruchomieniu. Skopiowane wiersze znajdować się będą pod spodem wolnego dla arkusza zakresu.
Option Explicit Sub Kopiuj_zaznaczone_wiersze() Dim x&, y&, i&, max_row&, max_kol&, ile, zakres As Range 'MVP OShon from VBATools.pl ile = InputBox("Ile razy chcesz powielić zaznaczone wiersze?", _ "Kopiowanie danych", 1) If IsNumeric(ile) = False Then Exit Sub On Error GoTo blad For y = 1 To Cells(1, 1).SpecialCells(xlLastCell).Column i = Last(Columns(y)) If max_kol < i Then max_kol = y Next y With Application .ScreenUpdating = False .EnableEvents = False Set zakres = Selection zakres.Copy For x = 1 To ile max_row = Cells(Rows.Count, max_kol).End(xlUp).Row + 1 Range("A" & max_row).PasteSpecial Paste:=xlWhole Next x .CutCopyMode = False .EnableEvents = True .ScreenUpdating = True End With Set zakres = Nothing Exit Sub blad: MsgBox Err.Number & vbCr & Err.Description, vbExclamation, "VBATools.pl" If Not zakres Is Nothing Then Set zakres = Nothing End Sub Function Last(rng As Excel.Range) As Long ' wg. Ron de Bruin, 20 Feb 2007 ' http://www.rondebruin.nl/last.htm On Error Resume Next Last = rng.Find(What:="*", _ After:=rng.Cells(1), _ LookAt:=xlPart, _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious, _ MatchCase:=False).Row On Error GoTo 0 End Function
Makro to przydaje się w przypadku kiedy mamy opracowany szablon, który należy zwielokrotnić w obrębie jednego arkusza lub jego formatowanie, formuły musiały by być kopiowane XXX razy.
(c) Shon Oskar – www.VBATools.pl
Wszelkie prawa zastrzeżone. Żadna część ani całość tego artykułu nie może być powielana ani publikowana bez zgody autora.