Ispišite više odabira na jednom listu pomoću VBA u programu Microsoft Excel

Anonim

Ako odaberete više raspona ćelija na jednom listu i pokušate ispisati odabrane ćelije
nabavite po jedan list za svako od odabranih područja.
Sljedeći primjer makronaredbe ispisat će sva odabrana područja na jednom listu,
osim ako su površine prevelike da stanu u jedan list.

Sub PrintSelectedCells () 'ispisuje odabrane ćelije, pomoću gumba na alatnoj traci ili izbornika Dim aCount As Integer, cCount As Integer, rCount As Integer Dim i As Integer, j As Long, aRange As String Dim rHeight () Kao Single, cWidth ( ) Kao Single Dim AWB Kao radna knjiga, NWB Kao radna knjiga Ako je UCase (Ime tipa (ActiveSheet)) "RADNI LIST" Zatim Exit Sub 'koristan samo na radnim listovima aCount = Selection.Areas.Count If aCount = 0 Onda Exit Sub' nema ćelija odabranih cCount = Selection.Areas (1) .Cells.Count If aCount> 1 Zatim 'više područja odabrano Application.ScreenUpdating = False Application.StatusBar = "Ispis" & aCount & "odabrana područja …" Postavite AWB = ActiveWorkbook rCount = ActiveSheet.Cells.SpecialCells (xlLastCell) .Row cCount = ActiveSheet.Cells.SpecialCells (xlLastCell) .Column ReDim rHeight (rCount) ReDim cWidth (cCount) Za i = 1 Za rCount 'pronađite visinu retka svakog reda u odabiru rHeight (i) = Rows (i) .RowHeight Next i Za i = 1 Za cCount 'pronađite širinu stupca svakog stupca u odabiru cWidt h (i) = Stupci (i). Širina stupca Sljedeće i Postavite NWB = Radne knjige. Dodajte 'kreirajte novu radnu knjigu Za i = 1 Za rCount' postavite visine reda Redke (i) .RowHeight = rHeight (i) Sljedeće i Za i = 1 Za cCount 'postavite širine stupaca Stupci (i). Širina stupca = cŠirina (i) Sljedeće i Za i = 1 Za aCount AWB. Aktivirajte aRange = Selection.Areas (i) .Address' raspon adresa Range (aRange) .Copy ' kopiranje raspona NWB.Activate With Range (aRange) 'lijepi vrijednosti i formate. PasteSpecial Paste: = xlValues, Operacija: = xlNone, _ SkipBlanks: = False, Transpose: = False .PasteSpecial Paste: = xlFormats, Operacija: = xlNone, _ SkipBlanks: = False, Transpose: = False End With Application.CutCopyMode = False Next i NWB.PrintOut NWB.Close False 'zatvorite privremenu radnu knjigu bez spremanja Application.StatusBar = False AWB.Aktivirajte Set AWB = Ništa nije postavljeno NWB = Ništa drugo Ako je cCount <10 Zatim 'odabrano je manje od 10 ćelija Ako je MsgBox ("Jeste li sigurni da želite ispisati" & _ cCount & "odabrane ćelije?", _ VbQuestion + vbYesNo, "Ispiši označene ćelije") = vbNo Th hr Izađi iz Sub End If Selection.PrintOut End If End Sub