pagesetup.printarea Print non contiguous areas # rows varies

R

Richard

Using variables to hold print ranges. How do I assign variables to
..pageSetup.PrintArea = ???
 
D

Dave Peterson

dim TopRow as long
dim BotRow as long
dim LeftCol as variant 'string or number!
dim rightcol as variant 'string or number

toprow = 1
botrow = 32
leftcol = "C"
rightcol = 92

with activesheet
.pagesetup.printarea _
= .range(.cells(toprow,leftcol), .cells(botrow,rightcol)) _
.address(external:=true)
end with

If this doesn't help, what are your variables and what do they hold?
 
O

OssieMac

Hello Richard,

You can name the range and then use the named range as the print area.
Range("A1:I16,A25:I35,A64:I81").Name = "MyPrintRange"

ActiveSheet.PageSetup.PrintArea = "MyPrintRange"

However, the above will insert a page feed between the non contiguous rows.
In Page setup it also converts the named range to actual cell addresses.

You can copy the non contiguous rows to a separate temporary worksheet and
there will be no non contiguous rows and then the address of the UsedRange
can be used for the PrintArea.

Sub PrtNonContiguous()

With Sheets("Sheet1")
.Range("A1:I16,A25:I35,A64:I81").Copy _
Sheets("Sheet2").Range("A1")
End With

With Sheets("Sheet2")
.PageSetup.PrintArea = .UsedRange.Address
End With

End Sub
 
Top