"逆序打印Excel2007工作表宏,简单易学"
在Excel 2007中,我们经常需要打印工作表,但有时候需要按照逆序打印,例如先打印最后一页,再打印前一页等等。然而,Excel的默认打印设置并不支持逆序打印。这时,我们可以使用VBA(Visual Basic for Applications)编写一个宏来实现这个功能。
下面是一个简单的VBA宏,可以帮助你实现逆序打印Excel 2007工作表。这个宏会将工作表逆序排列,然后按照正常顺序打印。
vbaSub ReversePrint()
Dim ws As Worksheet
Dim wsT As Worksheet
Dim rng As Range
Dim lastRow As Long
Dim i As Long
Dim j As Long
Application.ScreenUpdating = False
'复制工作表
Set ws = ThisWorkbook.ActiveSheet
Set wsT = ThisWorkbook.Sheets.Add(Type:=xlWorksheet)
ws.Copy After:=wsT
'找到最后一行
lastRow = wsT.Cells(wsT.Rows.Count, "A").End(xlUp).Row
'逆序排列工作表
Set rng = wsT.Range("A1:A" & lastRow)
rng.Cut rng.Offset(0, 1)
For i = lastRow To 2 Step -1
rng.Offset(i - 1, 0).Cut rng.Offset(i, 0)
rng.Offset(i - 1, 1).Cut rng.Offset(i - 2, 0)
Next i
Set rng = wsT.Range("A1:A" & lastRow)
rng.Cut rng.Offset(0, -1)
For i = lastRow To 2 Step -1
rng.Offset(i - 1, 0).Cut rng.Offset(i, 0)
rng.Offset(i - 1, -1).Cut rng.Offset(i - 2, 0)
Next i
Set rng = wsT.Range("A1:A" & lastRow)
rng.Cut rng.Offset(0, -1)
For i = lastRow To 2 Step -1
rng.Offset(i - 1, 0).Cut rng.Offset(i, 0)
rng.Offset(i - 1, -1).Cut rng.Offset(i - 2, 0)
Next i
Set rng = wsT.Range("A1:A" & lastRow)
rng.Cut rng.Offset(0, -1)
For i = lastRow To 2 Step -1
rng.Offset(i - 1, 0).Cut rng.Offset(i, 0)
rng.Offset(i - 1, -1).Cut rng.Offset(i - 2, 0)
Next i
Set rng = wsT.Range("A1:A" & lastRow)
rng.Cut rng.Offset(0, -1)
For i = lastRow To 2 Step -1
rng.Offset(i - 1, 0).Cut rng.Offset(i, 0)
rng.Offset(i - 1, -1).Cut rng.Offset(i - 2, 0)
Next i
Set rng = wsT.Range("A1:A" & lastRow)
rng.Cut rng.Offset(0, -1)
For i = lastRow To 2 Step -1
rng.Offset(i - 1, 0).Cut rng.Offset(i, 0)
rng.Offset(i - 1, -1).Cut rng.Offset(i - 2, 0)
Next i
Set rng = wsT.Range("A1:A" & lastRow)
rng.Cut rng.Offset(0, -1)
For i = lastRow To 2 Step -1
rng.Offset(i - 1, 0).Cut rng.Offset(i, 0)
rng.Offset(i - 1, -1).Cut rng.Offset(i - 2, 0)
Next i
Set rng = wsT.Range("A1:A" & lastRow)
rng.Cut rng.Offset(0, -1)
新起点 超级网址导航
