Hvis du velger flere celleområder på ett ark og prøver å skrive ut valgte celler, vil du gjøre det
få ett ark for hvert av de valgte områdene.
Følgende eksempelmakro vil skrive ut alle de valgte områdene på ett ark,
bortsett fra hvis områdene er for store til å passe i ett ark.
Sub PrintSelectedCells () 'skriver ut valgte celler, bruk fra en verktøylinjeknapp eller en meny 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 ( ) Som enkel dim AWB som arbeidsbok, NWB som arbeidsbok hvis UCase (TypeName (ActiveSheet)) "WORKSHEET" Deretter avslutt Sub 'nyttig bare i regneark aCount = Selection.Areas.Count If aCount = 0 Deretter Avslutt Sub' ingen celler valgt cCount = Selection.Areas (1) .Cells.Count If aCount> 1 Deretter valgte flere områder Application.ScreenUpdating = False Application.StatusBar = "Printing" & aCount & "selected areas …" Set AWB = ActiveWorkbook rCount = ActiveSheet.Cells.SpecialCells (xlLastCell) .Row cCount = ActiveSheet.Cells.SpecialCells (xlLastCell) .Column ReDim rHeight (rCount) ReDim cWidth (cCount) For i = 1 To rCount 'finn radhøyden til hver rad i utvalget rHeight (i) = Rows (i) .RowHeight Neste i For i = 1 Til cCount 'finn kolonnebredden til hver kolonne i utvalget cWidt h (i) = Kolonner (i) .ColumnWidth Next i Set NWB = Workbooks.Add 'create a new workbook For i = 1 To rCount' set row heights Rows (i) .RowHeight = rHeight (i) Next i For i = 1 Til cCount 'angi kolonnebredder Kolonner (i) .ColumnWidth = cWidth (i) Neste i For i = 1 Til aCount AWB.Activate aRange = Selection.Areas (i) .Adress' the range address Range (aRange) .Copy ' kopiere området NWB.Activate With Range (aRange) 'limer inn verdier og formater .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 'lukk den midlertidige arbeidsboken uten å lagre Application.StatusBar = False AWB.Activate Set AWB = Nothing Set NWB = Nothing Else Hvis cCount <10 Da er det valgt mindre enn 10 celler Hvis MsgBox ("Er du sikker på at du vil skrive ut" & _ cCount & "utvalgte celler?", _ VbQuestion + vbYesNo, "Skriv ut utvalgte celler") = vbNo Th no Avslutt Sub End If Selection. PrintOut End If End Sub