Ако изберете няколко диапазона от клетки на един лист и се опитате да отпечатате избрани клетки, ще го направите
вземете по един лист за всяка от избраните области.
Следващият примерен макрос ще отпечата всички избрани области на един лист,
освен ако областите не са твърде големи, за да се поберат в един лист.
Sub PrintSelectedCells () 'отпечатва избрани клетки, използвайте от бутона на лентата с инструменти или от менюто 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 ( ) Като Single Dim AWB като работна книга, NWB като работна книга Ако UCase (TypeName (ActiveSheet)) "WORKSHEET" Тогава Exit Sub 'е полезно само в работни листове aCount = Selection.Areas.Count If aCount = 0 Тогава Exit Sub' няма избрани клетки cCount = Selection.Areas (1) .Cells.Count If aCount> 1 Тогава 'избрани няколко области Application.ScreenUpdating = False Application.StatusBar = "Печат" & aCount & "избрани области …" Задайте 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 'намерете височината на всеки ред в селекцията rHeight (i) = Rows (i) .RowHeight Next i For i = 1 To cCount 'намерете ширината на колоната на всяка колона в селекцията cWidt h (i) = Колони (i) .ColumnWidth Next i Set NWB = Workbooks.Add 'създайте нова работна книга For i = 1 To rCount' задайте височини на редове Rows (i) .RowHeight = rHeight (i) Next i For i = 1 За cCount "задайте ширини на колони Колони (i). Колонна ширина = cWidth (i) Следваща i За i = 1 Към aCount AWB. Активирайте aRange = Selection.Areas (i). Адресирайте" обхвата на адреса Range (aRange). Copy " копиране на диапазона NWB.Activate With Range (aRange) 'поставя стойности и формати. PasteSpecial Paste: = xlValues, Операция: = xlNone, _ SkipBlanks: = False, Transpose: = False. _ SkipBlanks: = False, Transpose: = False End With Application.CutCopyMode = False Next i NWB.PrintOut NWB.Close False 'затворете временната работна книга без запазване на Application.StatusBar = False AWB. Активирайте Set AWB = Nothing Set NWB = Nothing Else Ако cCount <10 Тогава 'са избрани по -малко от 10 клетки Ако MsgBox ("Сигурни ли сте, че искате да отпечатате" & _ cCount & "избрани клетки?", _ VbQuestion + vbYesNo, "Печат на избрани клетки") = vbNo Th bg Изход Sub End Ако селектиране.PrintOut Край Ако End Sub