display pdf winform c# : Rotate pdf page Library SDK API .net asp.net web page sharepoint 0789736829_CH030-part74

IN   TH IS   C H AP TE R
Referring to Ranges
3
A range can be a cell, row, column, or a grouping of
any of these. The 
RANGE
object is probably the most
frequently used object in Excel VBA—after all,
you’re manipulating data on a sheet. Although a
range can refer to any grouping of cells on a sheet,
it can refer to only one sheet at a time; if you want
to refer to ranges on multiple sheets, you have to
refer to each sheet separately.
This chapter shows you different ways of referring
to ranges, such as specifying a row or column.
You’ll also learn how to manipulate cells based on
the active cell and how to create a new range from
overlapping ranges.
The Range Object
The following is the Excel object hierarchy:
The Range Object  . . . . . . . . . . . . . . . . . . . . . . .61
Using the Upper-Left and Lower-Right Corners
of a Selection to Specify a Range . . . . . . . . . .62
Named Ranges  . . . . . . . . . . . . . . . . . . . . . . . . .62
Shortcut for Referencing Ranges  . . . . . . . . . .62
Referencing Ranges in Other Sheets  . . . . . . .63
Referencing a Range Relative to Another
Range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63
Using the 
Cells
Property to Select
a Range  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64
Using the 
Offset
Property to Refer
to a Range  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65
Using the 
Resize
Property to Change
the Size of a Range . . . . . . . . . . . . . . . . . . . . . .67
Using the 
Columns
and 
Rows
Properties
to Specify a Range  . . . . . . . . . . . . . . . . . . . . . .68
Using the 
Union
Method to Join Multiple
Ranges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68
Using the 
Intersect
Method to Create
a New Range from Overlapping Ranges  . . . .69
Using the 
ISEMPTY
Function to Check 
Whether a Cell Is Empty . . . . . . . . . . . . . . . . . .69
Using the 
CurrentRegion
Property to
QuicklySelect a Data Range . . . . . . . . . . . . . .70
Using the Areas Collection to Return a
Noncontiguous Range  . . . . . . . . . . . . . . . . . . .73
Referencing Tables . . . . . . . . . . . . . . . . . . . . . .73
Application
Workbook
Worksheet
Range
The Range object is a property of the Worksheet
object. This means it requires that either a sheet be
active or it must reference a worksheet. Both of the
following lines mean the same thing if
Worksheets(1) is the active sheet:
Range(“A1”)
Worksheets(1).Range(“A1”)
There are several ways to refer to a Range object.
Range(“A1”)
is the most identifiable because that is
how the macro recorder does it. But each of the fol-
lowing is equivalent:
Range(“D5”)
[D5]
Range(“B3”).Range(“C3”)
Cells(5,4)
Range(“A1”).Offset(4,3)
Range(“MyRange”) ‘assuming that D5 has a Name
‘of MyRange
Which format you use depends on your needs.
Keep reading—it will all make sense soon!
Rotate pdf page - rotate PDF page permanently in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Users to Change the Rotation Angle of PDF File Page Using C#
rotate individual pages in pdf reader; pdf rotate all pages
Rotate pdf page - VB.NET PDF Page Rotate Library: rotate PDF page permanently in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
PDF Document Page Rotation in Visual Basic .NET Class Application
rotate all pages in pdf; how to rotate a pdf page in reader
Using the Upper-Left and Lower-Right Corners of a Selection to
Specify a Range
The 
Range
property has two acceptable syntaxes. To specify a rectangular range in the first
syntax, you specify the complete range reference just as you would in a formula in Excel:
Range(“A1:B5”).Select
In the alternative syntax, you specify the upper-left corner and lower-right corner of the
desired rectangular range. In this syntax, the equivalent statement might be this:
Range(“A1”, “B5”).Select
For either corner, you can substitute a named range, the 
Cells
property, or the 
ActiveCell
property. This line of code selects the rectangular range from A1 to the active cell:
Range(“A1”, ActiveCell).Select
The following statement selects from the active cell to five rows below the active cell and
two columns to the right:
Range(ActiveCell, ActiveCell.Offset(5, 2)).Select
Named Ranges
You’ve probably already used named ranges on your sheets and in formulas. You can also
use them in VBA.
To refer to the range 
“MyRange”
in Sheet1, do this:
Worksheets(“Sheet1”).Range(“MyRange”)
Notice that the name of the range is in quotes—unlike the use of named ranges in formulas
on the sheet itself. If you forget to put the name in quotes, Excel thinks you are referring to
a variable in the program, unless you are using the shortcut syntax discussed in the previous
section, in which case, quotes are not used.
Shortcut for Referencing Ranges
A shortcut is available when referencing ranges. It uses square brackets, as shown in Table 3.1.
Table 3.1 Shortcuts for Referring to Ranges
Standard Method
Shortcut
Range(“D5”)
[D5]
Range(“A1:D5”)
[A1:D5]
Range (“A1:D5,” “G6:I17”)
[A1:D5, G6:I17]
Range(“MyRange”)
[MyRange]
3
Chapter 3 
Referring to Ranges
62
VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.
XDoc.PDF ›› VB.NET PDF: Delete PDF Page. using RasterEdge.Imaging.Basic; using RasterEdge.XDoc.PDF; How to VB.NET: Delete a Single PDF Page from PDF File.
how to rotate all pages in pdf; pdf rotate pages separately
VB.NET PDF Page Insert Library: insert pages into PDF file in vb.
PDF Pages. |. Home ›› XDoc.PDF ›› VB.NET PDF: Insert PDF Page. Professional .NET PDF control for inserting PDF page in Visual Basic .NET class application.
rotate single page in pdf; how to reverse pages in pdf
63
Referencing a Range Relative to Another Range
Referencing Ranges in Other Sheets
Switching betweensheets by activating the needed sheet can drastically slow down your
code. To avoid this slowdown, you can refer to a sheet that is not active by referencing the
Worksheet object first:
Worksheets(“Sheet1”).Range(“A1”)
This line of code references Sheet1 of the active workbook even if Sheet2 is the active
sheet.
If you need to reference a range in another workbook, include the Workbook object, the
Worksheet object, and then the Range object:
Workbooks(“InvoiceData.xls”).Worksheets(“Sheet1”).Range(“A1”)
Be careful if you use the 
Range
property as an argument within another 
Range
property. You
must identify the range fully each time. Suppose, for example, that Sheet1 is your active
sheet and you need to total data from Sheet2:
WorksheetFunction.Sum(Worksheets(“Sheet2”).Range(Range(“A1”), Range(“A7”)))
This line does not work. Why? Because 
Range(Range(“A1”), Range(“A7”))
refers to an
extra range at the beginning of the code line. Excel does not assume that you want to carry
the Worksheet object reference over to the other Range objects. So, what do you do? Well,
you could write this:
WorksheetFunction.Sum(Worksheets(“Sheet2”).Range(Worksheets(“Sheet2”). _
Range(“A1”), Worksheets(“Sheet2”).Range(“A7”)))
But this is not only a long line of code, it is difficult to read! Thankfully, there is a simpler
way, 
With...End With
:
With Worksheets(“Sheet2”)
WorksheetFunction.Sum(.Range(.Range(“A1”), .Range(“A7”)))
End With
Notice now that there is a 
.Range
in your code, but without the preceding object reference.
That’s because 
With Worksheets(“Sheet2”)
implies that the object of the range is the work-
sheet.
Referencing a Range Relative to Another Range
Typically, the 
RANGE
object is a property of a worksheet. It is also possible to have 
RANGE
be
the property of another range. In this case, the 
Range
property is relative to the original
range! This makes for code that is very unintuitive. Consider this example:
Range(“B5”).Range(“C3”).Select
This actually selects cell D7. Think about cell C3. It is located two rows below and two
columns to the right of cell A1. The preceding line of code starts at cell B5. If we assume
that B5 is in the A1 position, VBA finds the cell that would be in the C3 position relative to
3
C# PDF Page Insert Library: insert pages into PDF file in C#.net
page processing functions, such as how to merge PDF document files by C# code, how to rotate PDF document page, how to delete PDF page using C# .NET, how to
change orientation of pdf page; how to rotate pdf pages and save
C# PDF Page Delete Library: remove PDF pages in C#.net, ASP.NET
Pages. |. Home ›› XDoc.PDF ›› C# PDF: Delete PDF Page. Demo Code: How to Delete a Single PDF Page from PDF File in C#.NET. How
reverse pdf page order online; rotate pdf pages individually
B5. In other words, VBA finds the cell that is two rows below and two columns to the right
of B5, and this is D7.
Again, I consider this coding style to be very unintuitive. This line of code mentions two
addresses, and the actual cell being selected is neither of these addresses! It seems mislead-
ing when you are trying to read this code.
You might consider using this syntax to refer to a cell relative to the active cell. For exam-
ple, this line activates the cell three rows down and four columns to the right of the
currently active cell:
Selection.Range(“E4”).Select
This syntax is mentioned only because the macro recorder uses it. Remember that back in
Chapter 1, “Unleash the Power of Excel with VBA!” when we were recording a macro with
Relative References on, the following line was recorded:
ActiveCell.Offset(0, 4).Range(“A2”).Select
It found the cell four columns to the right of the active cell, and from there selected the cell
that would correspond to A2. This is not the easiest way to write code, but that’s the macro
recorder.
Although a worksheet is usually the object of the 
Range
property, on occasion, such as
during recording, a range may be the property of a range.
Using the 
Cells
Property to Select a Range
The 
Cells
property refers to all the cells of the specified range object, which can be a work-
sheet or a range of cells. For example, this line selects all the cells of the active sheet:
Cells.Select
Using the 
Cells
property with the Range object might seem redundant:
Range(“A1:D5”).Cells
The line refers to the original Range object. However, the 
Cells
property has a property,
Item
, which makes the 
Cells
property very useful. The 
Item
property enables you to refer
to a specific cell relative to the Range object.
The syntax for using the 
Item
property with the 
Cells
property is as follows:
Cells.Item(Row,Column)
You must use a numeric value for 
Row
, but you may use the numeric value or string value for
Column
. Both the following lines refer to cell C5:
Cells.Item(5,”C”)
Cells.Item(5,3)
Because the 
Item
property is the default property of the 
RANGE
object, you can shorten these
lines:
3
Chapter 3 
Referring to Ranges
64
C# TIFF: How to Rotate TIFF Using C# Code in .NET Imaging
Convert Tiff to Jpeg Images. Convert Word, Excel, PowerPoint to Tiff. Convert PDF to Tiff. Move Tiff Page Position. Rotate a Tiff Page. Extract Tiff Pages.
rotate pdf page permanently; how to rotate page in pdf and save
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
If using x86, the platform target should be x86. C#.NET Sample Code: Clone a PDF Page Using C#.NET. Load the PDF file that provides the page object.
rotate single page in pdf file; how to save a pdf after rotating pages
65
Using the 
Offset
Property to Refer to a Range
Cells(5,”C”)
Cells(5,3)
The ability to use numeric values for parameters proves especially useful if you need to loop
through rows or columns. The macro recorder usually uses something like 
Range(“A1”).
Select
for a single cell and 
Range(“A1:C5”).Select
for a range of cells. If you are learning
to code simply from the recorder, you might be tempted to write code like this:
FinalRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 to FinalRow
Range(“A” & i & “:E” & i).Font.Bold = True
Next i
This little piece of code, which loops through rows and bolds the cells in Columns A
through E, is awkward to read and write. But, how else can you do it?
FinalRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 to FinalRow
Cells(i,”A”).Resize(,5).Font.Bold = True
Next i
Instead of trying to type out the range address, the new code uses the 
Cells
and 
Resize
properties to find the required cell, based on the active cell.
Using the 
Cells
Property in the 
Range
Property
You can use 
Cells
properties as parameters in the 
Range
property. The following refers to
the range A1:E5:
Range(Cells(1,1),Cells(5,5))
This proves especially useful when you need to specify your variables with a parameter, as
in the previous looping example.
Using the 
Offset
Property to Refer to a Range
You’ve already seena reference to 
Offset
; the macro recorder used it when we were record-
ing a relative reference. It enables you to manipulate a cell based off the location of the
active cell. In this way, you don’t have to know the address of a cell.
The syntax for the 
Offset
property is this:
Range.Offset(RowOffset, ColumnOffset)
To affect cell F5 from cell A1, write this:
Range(“A1”).Offset(RowOffset:=4, ColumnOffset:=5)
Or, shorter yet, write this:
Range(“A1”).Offset(4,5)
The count starts at A1 but does not include A1.
3
VB.NET PDF Page Replace Library: replace PDF pages in C#.net, ASP.
Existing PDF Pages. Page: Replace PDF Pages. Page: Move Page Position. Page: Copy, Paste PDF Pages. Page: Rotate a PDF Page. PDF Read. Text
rotate pdf page and save; rotate all pages in pdf preview
VB.NET PDF - WPF PDF Viewer for VB.NET Program
Existing PDF Pages. Page: Replace PDF Pages. Page: Move Page Position. Page: Copy, Paste PDF Pages. Page: Rotate a PDF Page. PDF Read. Text
pdf rotate single page; pdf rotate page and save
But what if you need to go over only a row or a column, but not both? You don’t have to
enter both the row and column parameter. If you need to refer to a cell one column over,
use one of these:
Range(“A1”).Offset(ColumnOffset:=1)
Range(“A1”).Offset(,1)
Both lines mean the same. The choice is yours. Referring to a cell one row up is similar:
Range(“B2”).Offset(RowOffset:=-1)
Range(“B2”).Offset(-1)
Once again, the choice is yours. It is a matter of readability of the code.
Let’s suppose you have a list of produce with totals next to them, and you want to find any
total equal to zero and place LOW in the cell next to it. You could do it this way:
Set Rng = Range(“B1:B16”).Find(What:=”0”, LookAt:=xlWhole, LookIn:=xlValues)
Rng.Offset(, 1).Value = “LOW”
Sub MyOffset()
With Range(“B1:B16”)
Set Rng = .Find(What:=”0”, LookAt:=xlWhole, LookIn:=xlValues)
If Not Rng Is Nothing Then
firstAddress = Rng.Address
Do
Rng.Offset(, 1).Value = “LOW”
Set Rng = .FindNext(Rng)
Loop While Not Rng Is Nothing And Rng.Address <> firstAddress
End If
End With
End Sub
The LOW totals are quickly noted by the program, as shown in Figure 3.1.
Offsetting isn’t only for single cells—it can be used with ranges. You can shift the focus of a
range over in the same way you can shift the active cell. The following line refers to B2:D4
(see Figure 3.2):
Range(“A1:C3”).Offset(1,1)
3
Chapter 3 
Referring to Ranges
66
Figure 3.1
Find the produce
with the 0 total.
Figure 3.2
Offsetting a range—
Range(“A1:C3”).
Offset(1,1).
Select
.
67
Using the 
Resize
Property to Change the Size of a Range
Using the 
Resize
Property to Change the Size of a Range
The 
Resize
property enables you to change the size of a range based on the location of the
active cell. You can create a new range as you need it.
The syntax for the 
Resize
property is this:
Range.Resize(RowSize, ColumnSize)
To create a range B3:D13, use this:
Range(“B3”).Resize(RowSize:=11, ColumnSize:=3)
Or, simpler, use this:
Range(“B3”).Resize(11, 3)
But what if you need to resize by only a row or a column, not both? You don’t have to enter
both the row and column parameters. If you need to expand by two columns, use one of
these:
Range(“B3”).Resize(ColumnSize:=2)
or
Range(“B3”).ReSize(,2)
Both lines mean the same. The choice is yours. Resizing just the rows is similar:
Range(“B3”).Resize(RowSize:=2)
or
Range(“B3”).Resize(2)
Once again, the choice is yours. It is a matter of readability of the code.
From the list of produce, find the zero total and color the cells of the total and correspond-
ing produce (see Figure 3.3):
Set Rng = Range(“B1:B16”).Find(What:=”0”, LookAt:=xlWhole, LookIn:=xlValues)
Rng.Offset(, -1).Resize(, 2).Interior.ColorIndex = 15
Notice that the 
Offset
property was used first to move the active cell over; when you are
resizing, the upper-left corner cell must remain the same. 
Resizing isn’t only for single cells—it can be used to resize an existing range. For example,
if you have a named range but need it and the two columns next to it, use this:
Range(“Produce”).Resize(,2)
Remember, the number you resize by is the total number of rows/columns you want to
include.
3
3
Chapter 3 
Referring to Ranges
68
Figure 3.3
Resizing a rangeto
extend the selection.
Using the 
Columns
and 
Rows
Properties to Specify a Range
Columns
and 
Rows
refer to the columns and rows of a specified Range object, which can be a
worksheet or a range of cells. They return a Range object referencing the rows or columns
of the specified object.
You’ve seen the following line used, but what is it doing?
FinalRow = Cells(Rows.Count, 1).End(xlUp).Row
This line of code finds the last row in a sheet in which Column A has a value and places
the row number of that Range object into 
FinalRow
. This can be very useful when you
need to loop through a sheet row by row—you’ll know exactly how many rows you need to
go through.
Some properties of columns and rows require contiguous rows and columns to work properly.For
example,if you were to use the following line of code,9 would be the answer because only the first
range would be evaluated:
Range(“A1:B9, C10:D19”).Rows.Count
But if the ranges are grouped separately,
Range(“A1:B9”, “C10:D19”).Rows.Count 
the answer would be 19.
CAUTION
Using the 
Union
Method to Join Multiple Ranges
The 
Union
method enables you to join two or more noncontiguous ranges. It creates a
temporary object of the multiple ranges, allowing you to affect them together:
Application.Union(argument1, argument2, etc.)
The following code joins two named ranges on the sheet, inserts the 
=RAND()
formula, and
bolds them:
Set UnionRange = Union(Range(“Range1”), Range(“Range2”))
With UnionRange
.Formula = “=RAND()”
.Font.Bold = True
End With
69
Using the 
ISEMPTY
Function to Check Whether a Cell Is Empty
3
Using the 
Intersect
Method to Create a New Range from
Overlapping Ranges
The 
Intersect
method returns the cells that overlap between two or more ranges:
Application.Intersect(argument1, argument2, etc.)
The following code colors the overlapping cells of the two ranges.
Set IntersectRange = Intersect(Range(“Range1”), Range(“Range2”))
IntersectRange.Interior.ColorIndex = 6
Using the 
ISEMPTY
Function to Check Whether a Cell Is Empty
The 
ISEMPTY
function returns a Boolean value of whether a single cell is empty or not; 
True
if empty, 
False
if not. The cell must truly be empty. Even if it has a space in it, which you
cannot see, Excel does not consider it empty:
IsEmpty(Cell)
Look at Figure 3.4. You have several groups of data separated by a blank row. You want to
make the separations a little more obvious.
Figure 3.4
Blank empty rows
separating data.
The following code goes down the data in Column A; where it finds an empty cell, it
colors in the first four cells for that row (see Figure 3.5):
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To LastRow
If IsEmpty(Cells(i, 1)) Then
Cells(i, 1).Resize(1, 4).Interior.ColorIndex = 1
End If
Next i
Using the 
CurrentRegion
Property to Quickly Select
a Data Range
CurrentRegion
returns a Range object representing a set of contiguous data. As long as the
data is surrounded by one empty row and one empty column, you can select the table with
CurrentRegion
:
RangeObject.CurrentRegion
Look at Figure 3.6. The following line selects A1:D3 because this is the contiguous range
of cells around cell A1:
Range(“A1”).CurrentRegion.Select
This is useful if you have a table whose size is in constant flux.
3
Chapter 3 
Referring to Ranges
70
Figure 3.6
Use 
CurrentRegion
to quickly select a range
of contiguous data
around the active cell.
CASE STUDY
Using the 
SpecialCells
Method to Select Specific Cells
Even Excel power users may never have encountered the Go To Special dialog box. If you
press the F5 key in an Excel worksheet, you get the normal Go To dialog box (see Figure
3.7). In the lower-left corner of this dialog is a button labeled Special. Click that button to
get to the super-powerful Go To Special dialog (see Figure 3.8).
In the Excel interface, the Go To Special dialog enables you to select only cells with for-
mulas, or only blank cells, or only the visible cells. Selecting visible cells only is excellent
for grabbing the visible results of AutoFiltered data.
To simulate the Go To Special dialog in VBA, use the 
SpecialCells
method. This enables
you to act on cells that meet a certain criteria:
RangeObject.SpecialCells(Type, Value)
Figure 3.5
Colored rows
separatingdata.
Documents you may be interested
Documents you may be interested