Setting print area

R

richzip

I am trying to set up a macro that sets the print area. I tried getting the
code by using "record new macro", and copying my keystrokes. I highlighted
the area I want to print, and recorded the keystrokes from there.

The macro came out to be:

ActiveSheet.PageSetup.PrintArea = "$A$1:$G$35"

However, the actual area will vary depending on the worksheet. How can I
change this code to make the area = only what I have highlighted at the time
I start the macro?
 
H

Hong Quach

Hi Richzip,

You can add 2 lines to your code to retrieve the current selection address
and modify your code to reference the retrieved selection address.

Dim rg As Range ' variable to hold the current selection
Set rg = Selection ' get the range of the current selection
ActiveSheet.PageSetup.PrintArea = rg.Address

'Complete working code:
Sub SetPrintArea()
'Make sure selection is a Range object
If TypeName(Selection) = "Range" Then
'Create rg variable and store the current selection address
Dim rg As Range
Set rg = Selection
'Set the print area
ActiveSheet.PageSetup.PrintArea = rg.Address
Else
MsgBox "The current selection cannot be use to set as print area."
End If
End Sub

Hong Quach
 
J

JLGWhiz

Unless you are going to use the print range for other purposes, it is not
necessary to set it if you only want to print the selection. You can just
use:

Selection.PrintOUt

It will only print the selected range.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top