Ja vienā lapā atlasāt vairākus šūnu diapazonus un mēģināt izdrukāt atlasītās šūnas, jūs to darīsit
iegūstiet vienu lapu katram izvēlētajam apgabalam.
Šis makro piemērs drukās visus atlasītos apgabalus uz vienas lapas,
izņemot gadījumus, ja laukumi ir pārāk lieli, lai ietilptu vienā loksnē.
Sub PrintSelectedCells () 'izdrukā atlasītās šūnas, izmantojiet no rīkjoslas pogas vai izvēlnes Dim aCount As Integer, cCount As Integer, rCount As Integer Dim i As Integer, j Tik garš, aRange As String Dim rHeight () Kā Single, cWidth ( ) Kā viena Dim AWB kā darbgrāmata, NWB kā darbgrāmata Ja UCase (TypeName (ActiveSheet)) "WORKSHEET", tad Exit Sub 'noder tikai darblapās aCount = Selection.Areas.Count If aCount = 0 Tad Exit Sub' nav atlasītas šūnas cCount = Selection.Areas (1) .Cells.Count Ja aCount> 1 Tad tiek atlasīti vairāki apgabali Application.ScreenUpdating = False Application.StatusBar = "Drukāšana" un aCount & "atlasītie apgabali …" Set AWB = ActiveWorkbook rCount = ActiveSheet.Cells.SpecialCells (xlLastCell). Rinda cCount = ActiveSheet.Cells.SpecialCells (xlLastCell). Kolonna ReDim rHeight (rCount) ReDim cWidth (cCount) Ja i = 1 To rCount 'atrodiet katras rindas rindas augstumu atlasē rHeight (i) = Rows (i). RowHeight Next i Par i = 1 To cCount "atrodiet katras kolonnas platumu atlasē cWidt h (i) = Kolonnas (i). Kolonnas platums Nākamais i Iestatīt NWB = Darbgrāmatas. Pievienot "izveidot jaunu darbgrāmatu, lai i = 1 Uz rCount" iestatītu rindu augstumus Rindas (i). RowHeight = rHeight (i) Nākamais i Par i = 1 Lai aprēķinātu, iestatiet kolonnu platumus Kolonnas (i). Kolonnas platums = cWidth (i) Tālāk i Attiecībā uz i = 1 Uz aWount AWB. Aktivizēt aRange = Selection.Areas (i). Adrese 'diapazona adreses diapazons (aRange) .Copy' kopējot diapazonu NWB.Activate With Range (aRange) 'ielīmē vērtības un formātus .PasteSpecial Paste: = xlValues, Operation: = xlNone, _ SkipBlanks: = False, Transpose: = False .PasteSpecial Paste: = xlFormats, Operation: = xlNone, _ SkipBlanks: = False, Transpose: = False End With Application.CutCopyMode = False Next i NWB.PrintOut NWB.Close False 'aizver pagaidu darbgrāmatu, nesaglabājot Application.StatusBar = False AWB.Activate Set AWB = Nothing Set NWB = Nothing Else Ja cCount <10, tad atlasītas mazāk nekā 10 šūnas Ja MsgBox ("Vai tiešām vēlaties drukāt" & _cCount & "atlasītās šūnas?", _ VbQuestion + vbYesNo, "Drukāt atlasītās šūnas") = vbNo Th lv Iziet Izvēlēties apakšgalu, ja tiek izvēlēta