display pdf byte array in browser c# : How to reverse pages in pdf SDK application API wpf html web page sharepoint 1200%20macro_examples16-part132

161
You can merge a range of cells with statements like the following
Range("C3:E3").Merge
To merge the active cell and the two cells to the right, use
Range(ActiveCell, ActiveCell.Offset(0,2)).Merge
To assign a value to merged cells or retrieve a value from merged cells, reference the left most
cell in the range.   Use theUnMerge method to undo merged cells.
9.11.29 VBA and Validation List
Unfortunately, if a cell is changed by using a validation list, the PrivateSub
Worksheet_Change(ByVal TargetAsExcel.Range) does not run.  This has been corrected in
Excel 2000.  Meanwhile, if you're stuck in Excel 97 there really aren't a lot of good options.
The best option is to put some kind of inherently volatile formula in a hidden cell on the
worksheet (=RAND(), for instance) and then use the calculate event to signal changes in the
validation lists.
Of course a million other things besides selecting an item from the validation list will cause the
calculate event to fire, so you have to write code to store the old value from the list and compare
it to the current value to see if the dropdown list really changed.  Definitely a pain.
9.12 DETERMINING IF A RANGE IS IN ANOTHER
RANGE
9.12.1 Determining If A Selection Is Within A Named Range
The following code determines if a selection is within a named range.  It will return true if any
part of the selection is within a range
Sub Determine_If_Selection_Is_In_A_Range()
Dim testRange As Range
Dim nameRange As Range
Dim nm
'set a range variable equal to the selected range
Set testRange = Selection
'set an error trap in case the name is not assigned to a range or
'the name is on a different sheet
On Error GoTo errorTrap
For Each nm In Application.Names
How to reverse pages in pdf - 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#
pdf rotate pages separately; pdf rotate all pages
How to reverse pages in pdf - 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
how to rotate a pdf page in reader; rotate all pages in pdf
162
'get the range assigned to the name
Set nameRange = Range(Mid(nm.RefersTo, 2))
If Not nameRange Is Nothing Then
'see if the selected range is in the named range
If Union(nameRange, testRange).Address = _
nameRange.Address Then
MsgBox "The selected range is " & _
"contained in " & nm.Name
Exit Sub
End If
End If
nextName:
Next nm
'if no match found above, then display this message
MsgBox "There is no range name that contains" & _
" any part of the selected range"
Exit Sub
errorTrap:
'this handles an error when a named range is not valid or on a different sheet
Resume nextName
End Sub
9.12.2 Determining If A Range Is Within A Specific Range
The following code illustrates how to determine if a range (or any part of a range) is within
another range.
Dim addr As Range
'set a range variable to the selection
Set addr = Selection
'check the intersect of the two ranges
If Application.Intersect(addr, _
Range("B2:D5")) Is Nothing Then
MsgBox "No Intersection"
Else
MsgBox "Intersection"
End If
The following illustrates how to do this using a function that returnsTrue orFalse.  Also, this
function will returnTrue only if the entire selection is within the allowed range.  Note that the
C# PDF Page Move Library: re-order PDF pages in C#.net, ASP.NET
Support to reverse page order in PDF document. SDK (XDoc.PDF) is a thread-safe .NET library that can be used to adjust the PDF document pages order.
how to rotate all pages in pdf; rotate a pdf page
VB.NET PDF Page Move Library: re-order PDF pages in vb.net, ASP.
Support to reverse page order in adobe PDF document in both .NET WinForms application and ASP.NET webpage. So a PDF document pages sorting control is
rotate pages in pdf expert; rotate single page in pdf
163
default value of the function isFalse, and this value is returned if the function is not explicitly set
toTrue
Function InRange(rng As Range) As Boolean
Dim tempR As Range
'get the intersection of the supplied area and the range
Set tempR = Application.Intersect(rng, _
Range("B2:D5"))
If tempR Is Nothing Then Exit Function
'check to see if the address of the range supplied and the result of
'the intersection is the same.  If they are then return True
If rng.Address = tempR.Address Then InRange = True
End Function
Sub Test()
'this illustrates how to use the above function
Dim anyR As Range
Set anyR = Selection
If InRange(anyR) Then
MsgBox "In range"
Else
MsgBox "Not in range"
End If
End Sub
9.12.3 Determining If A Cell Is Within A Certain Range
If you know the row and column number of a cell, and want to test to see if it is within a certain
range, then you can do so with code like the following:
If Union(Cells(rowcol), Range("Range")).Address = _
Range("Range").Address Then
MsgBox "The cell is contained in the range"
Else
MsgBox "The cell is not contained in the range"
End If
Please note that the above assumes that the cell and range name are on the active worksheet.  If
not, you need to qualifyCells andRange with the worksheet.
9.12.4 Determining When A Cell Is Within A Range
The easiest way to determine if a cell is within a range is to use theIntersect method.  For
example:
C# Word: How to Use C# Code to Print Word Document for .NET
document pages in original or reverse order within demonstrates how to print defined pages of Word powerful & profession imaging controls, PDF document, image
how to permanently rotate pdf pages; rotate pdf page
164
Dim TempR As Range
'initialize TempR to nothing in case it has been set to a range by prior code
Set TempR = Nothing
'set on error so the following Set statement does not display an error
'message if the range name does not exist
On Error Resume Next
'note that this test assumes that the range is on the ActiveSheet
Set TempR = Intersect(ActiveCell, Range("SomeName"))
'turn off error trapping
On Error GoTo 0
If TempR Is Nothing Then
'action to take if ActiveCell is not in the range
Else
'action to take if ActiveCell is within the range
End If
The following is a more complex example.  In this example, the user wants to determine when
the user selects a cell in any one of five ranges, and take action based on the range.  In addition, if
the user selects a second cell in a given range, then no action would be taken.  I.e., action is taken
only when the user first selects a cell in a given range.  For simplicity in this example, the ranges
are columns A, B, C, D, and E.
The following code goes into the worksheet code sheet
'declare this at the top of the module
Dim PrevRange As Integer
Private Sub Worksheet_SelectionChange( _
ByVal Target As Excel.Range)
Dim RangeList As Variant
Dim I As Integer
'assign list of array names to a variant variable
RangeList = Array("A:A", "B:B", "C:C", "D:D", "E:E")
165
'check each range to see if the ActiveCell is within the range
'note that the array index begins at 0 and ends at 4, not 1 and 5.
For I = LBound(RangeList) To UBound(RangeList)
If Not Intersect(ActiveCell, Range(RangeList(I))) _
Is Nothing Then
'if the range is not the same as the last rang then display a
'message based on the range
If PrevRange <> I Then
Select Case I
Case 0: MsgBox 0
Case 1: MsgBox 1
Case 2: MsgBox 2
Case 3: MsgBox 3
Case 4: MsgBox 4
End Select
End If
Exit For
End If
Next I
'update the last range with an intersection
PrevRange = I
End Sub
9.12.5 Determining If One Range Is Within Another
The following function will compare two ranges to see if the first range is within the second
range.
Function bR1_inside_R2(range1 As Range, _
range2 As Range) As Boolean
Dim tempR As Range
On Error Resume Next
Set tempR = Intersect(range1range2)
If tempR Is Nothing Then Exit Function
If tempR.Address = range1.Address Then bR1_inside_R2 = True
End Function
Sub demo_bR1_inside_R2()
MsgBox bR1_inside_R2(Range("a1:a10"), Range("a1:b10"))
End Sub
9.12.6 How To Determine If The ActiveCell Is Within A
Named Range
The following function returns True if the cell object passed to the function is within the range
name passed to it.
166
Function bInName(anyCell As Range, anyName As String, _
oBook As Workbook) As Boolean
Dim nM
'rotate through each name in the workbook that is passed to the function
For Each nM In oBook.Names
'check for a matching name
If LCase(nM.Name) = LCase(anyName) Then
'if a match is found, see if the cell is in the range
If Not Intersect(anyCell, _
Range(Mid(nM.Value, 2))) Is Nothing Then
'set function to True if found.  Default value is False
bInName = True
End If
'exit function as search is done
Exit Function
End If
Next
End Function
The following subroutine shows how to use the above function to find out if the cell is within the
range name "CurrentYear"  Please note you can set the cell and workbook to any cell on any open
workbook.  ActiveCell and ActiveWorkbook were used for convenience.
Sub Test()
Dim cell As Range, wBook As Workbook
Set cell = ActiveCell
Set wBook = ActiveWorkbook
MsgBox bInName(cell, "CurrentYear", wBook)
End Sub
The following example determines which named range the active cell is within.
Sub C
hkNames
ForRange()
Dim nM, bFound As Boolean
'Rotate through all the names in the workbook
For Each nM In ActiveWorkbook.Names
167
'restrict testing to range names and to names on the ActiveSheet
' the Value of a range name is the range it refers to,
'beginning with an equal sign. Ex: =sheet1!$A$1:$C$3
If InStr(nM.Value, "$") > 0 And _
InStr(nM.Value, ActiveSheet.Name) > 0 Then
If Not Intersect(ActiveCell, _
Range(Mid(nM.Value, 2 ))) Is Nothing Then
'If a match is found set Boolean flag and exit For
bFound = True
Exit For
End If
End If
Next nM
'display a message based on the value of the Boolean flag
If bFound Then
MsgBox "The active cell is within range name " & nM.Name
Else
MsgBox "The active cell is not within a named range"
End If
End Sub
9.12.7 A Function That Determines If A Range Is Within
Another Range
The following function returnsTrue if range 1 is within range 2, andFalse if it is not.  The
arguments must be range references, not text strings.
Function IsInRange(Rg1 As Range, Rg2 As Range) As Boolean
If Union(Rg1, Rg2).Address = Rg2.Address Then _
IsInRange = True
End Function
The function returnsFalse, it default value, if the two addresses are different.
The following illustrates how to use the above function.
Sub Test_Function()
With Worksheets("sheet1")
MsgBox (IsInRg(.Range("C5"), .Range("A1:D10")))
End With
End Sub
9.13 WORKING WITH RANGE NAMES
9.13.1 Working With Range Names
168
If you have a range name in a worksheet and want to use it in your code, Excel will only
recognize the range name if you are on the sheet containing the range name, or if you qualify the
Range reference with the worksheet.
For example, if range name "MyRange" is on worksheet "Sheet12", and you are on "Sheet3"
when you run the following statement, the code will crash:
Range("MyRange").Copy
The solution is very simple, but not obvious.  The following approaches will work:
Approach 1
Range("MyRange").Worksheet.Activate
Range("MyRange").Copy
Approach 2 
-
which does not require you to go to the worksheet
Range("myRange").Worksheet.Range("myrange").Copy
If all you want to do is to determine the worksheet containing the range, then you can do the
following
Dim oSheet As Worksheet
Set oSheet = Range("myRange").Worksheet
MsgBox oSheet.Name
Please note that the above approaches require that the active workbook be the workbook
containing the range name, and that the range name is not a local sheet specific range name
9.13.2 Creating Range Names
You can create a range name very simply:
Range("C4:R9").Name = "SomeName"
or
Set tempRange = Range("C4:R9")
tempRange.Name = "SomeName"
9.13.3 Creating Hidden Range Names
The following illustrates how to create a hidden range name:
ActiveWorkbook.Names.Add Name:="hiddenName", _
RefersTo:= "=1000", Visible:=False
Hidden range names are useful to store settings that are not visible to the user.
9.13.4 Referring To A Range Name In Your Code
169
Use of range names can make your work in Visual Basic easier.  However, to get the full benefit
of range names, you should use them to set a range variable to the range name's range.  This is
easy to do if the active sheet is the sheet containing the range name.  For example, if the range
name is "MyRange" and it refers to cells on the active sheet, then the following will work:
Dim MyVariable As Range
Set MyVariable = Range("MyRange")
However, the above will crash if the range name "MyRange" is not on the active sheet. The
following is a workaround you can use:
If in the active workbook:
Dim myVariable As Range
Set myVariable = Names("MyRange").RefersToRange
If in a different workbook:
Dim myVariable As Range
Set myVariable = _
Workbooks("book3.xls").Names("MyRange").RefersToRange
If in a different workbook
Sub GoToARange()
Dim myRange As Range
'set a variable to a range name's range by calling a user defined function
Set myRange = RangeNameToRange(Workbooks("book3"), "myRange")
'got to the range
Application.Goto myRange
End Sub
Function RangeNameToRange(wBook As Workbook, _
rName As StringAs Range
Dim I As Integer, J As Integer,
Dim sName As String, tempStr As String
'get full address excluding = sign
tempStr = Mid(wBook.Names(rName).RefersTo, 2)
I = InStr(tempStr , "'!")
If I = 0 Then
I = InStr(tempStr , "!")
Else
J = 1
End If
170
'get only the sheet name in the address
sName = Mid(tempStr , 1 + J, I 
-
-
1)
'use the pieces to return a range reference
Set RangeNameToRange = wBook.Sheets(sName).Range(rName)
End Function
9.13.5 How To Refer To Range Names In Your Code
If you need to refer to ranges in your workbook, then you can use statements like the following:
If the range name is on the active sheet, then the following refers to the range:
Range("range name")
If the range name is on a different sheet in the active workbook, then use statements like the
following:
Sheets("sheet name").Range("range name")
or
Range("'sheet name'!range name")
If the range name is not in the active workbook, then use a statement like the following:
Workbooks("name").Sheets("sheet name").Range("range name")
If you have object variables set that refer to the workbook or sheet, you can use the object
variables instead of theWorkbooks("name") andSheets("sheet name") statements.
9.13.6 Check For Existence Of A Range Name
The following function returnsTrue if the range name exists and is not a local (sheet specify)
range name,False if it has note.
Function NameExists(theName As String) As Boolean
Dim S As String
On Error GoTo EndFunction
S = ThisWorkbook.Names(theName).RefersTo
NameExists = True
Exit Function
EndFunction:
NameExists = False
End Function
9.13.7 Determining If A Range Has Been Assigned A Range
Name
Documents you may be interested
Documents you may be interested