Vytlačte viac výberov na jeden list pomocou jazyka VBA v programe Microsoft Excel

Anonim

Ak vyberiete viacero rozsahov buniek na jednom hárku a pokúsite sa vybrané bunky vytlačiť, urobíte to
získajte jeden list pre každú z vybraných oblastí.
Nasledujúce príklad makra vytlačí všetky vybraté oblasti na jeden list,
okrem prípadov, keď sú oblasti príliš veľké na to, aby sa zmestili na jeden list.

Sub PrintSelectedCells () 'vytlačí vybrané bunky pomocou tlačidla na paneli s nástrojmi alebo z ponuky Dim aCount As Integer, cCount As Integer, rCount As Integer Dim i As Integer, j As Long, aRange As String Dim rHeight () As Single, cWidth ( ) Ako jeden Dim AWB ako zošit, NWB ako zošit Ak UCase (TypeName (ActiveSheet)) "PRACOVNÝ LIST" Potom Ukončite Sub 'užitočné iba v pracovných hárkoch aCount = Selection.Areas.Count Ak aCount = 0 Potom Ukončite Sub' nie sú vybrané žiadne bunky cCount = Selection.Areas (1) .Cells.Count If aCount> 1 Then 'multiple areas selected Application.ScreenUpdating = False Application.StatusBar = "Printing" & aCount & "selected areas…" Set AWB = ActiveWorkbook rCount = ActiveSheet.Cells.SpecialCells (xlLastCell). Riadok cCount = ActiveSheet.Cells.SpecialCells (xlLastCell). Stĺpec ReDim rHeight (rCount) ReDim cWidth (cCount) For i = 1 To rCount 'vyhľadajte výšku riadka každého riadku vo výbere rHeight (i) = Riadky (i). Riadková výška Ďalej i Pre i = 1 To cCount 'vyhľadajte šírku stĺpca každého stĺpca vo výbere cWidt h (i) = Stĺpce (i). Šírka stĺpca Ďalej i Nastaviť NWB = Zošity. Pridať 'vytvoriť nový zošit Pre i = 1 Do rCount' nastaviť výšky riadkov Riadky (i). RowHeight = rVýška (i) Ďalej i Pre i = 1 To cCount 'nastavte šírky stĺpcov Stĺpce (i). ColumnWidth = cWidth (i) Ďalej i Pre i = 1 Do aCount AWB. Aktivujte aRange = Selection.Areas (i). Adresa' rozsah rozsahu adries (aRange) .Copy ' kopírovanie rozsahu NWB. Aktivácia pomocou rozsahu (aRange) 'vloží hodnoty a formáty. VložiťSpecial Vložiť: = xlValues, Prevádzka: = xlNone, _ SkipBlanks: = Nepravda, Transponovať: = False .PasteSpecial Vložiť: = xlFormats, Prevádzka: = xlNone, _ SkipBlanks: = False, Transpose: = False End with Application.CutCopyMode = False Next i NWB.PrintOut NWB.Close False 'zatvorte dočasný zošit bez uloženia Application.StatusBar = False AWB. Aktivovať Nastaviť AWB = Nič Nastaviť NWB = Nič iné If cCount <10 Then 'less than 10 cells selected If MsgBox ("Si si istý, že chceš tlačiť" & _ cCount & "selected cells?", _ VbQuestion + vbYesNo, "Print celected cells") = vbNo Th sk Ukončiť Sub End If Selection.PrintOut End If End Sub