pagesetup.printarea Print non contiguous areas # rows varies

  • Thread starter Thread starter Richard
  • Start date Start date
R

Richard

Using variables to hold print ranges. How do I assign variables to
..pageSetup.PrintArea = ???
 
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?
 
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
 
Back
Top