20171114xlVba选定单行记录并打印
Posted Excel VBA 小天地
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20171114xlVba选定单行记录并打印相关的知识,希望对你有一定的参考价值。
Public Sub PrintSelectRow() Dim Wb As Workbook Dim iSht As Worksheet Dim rSht As Worksheet Dim pSht As Worksheet Dim Rng As Range, ActiveRow As Long Dim Arr As Variant, Ar As Variant Dim EndRow As Long, EndCol As Long Dim RngCol As Long Set Wb = Application.ThisWorkbook Set iSht = Wb.Worksheets("信息表") Set rSht = Wb.Worksheets("打印记录") Set pSht = Wb.Worksheets("打印模板") With iSht EndCol = .Cells(1, .Cells.Columns.Count).End(xlToLeft).Column ActiveRow = Application.ActiveCell.Row Set Rng = .Range(.Cells(ActiveRow, 1), .Cells(ActiveRow, EndCol)) RngCol = EndCol + 1 If Application.WorksheetFunction.CountA(Rng) = 0 Then MsgBox "当前选中行为空白行,请重新选择!", vbInformation, "AuthorQQ 84857038" GoTo ErrorExit End If Ar = Rng.Value End With With rSht EndRow = .Cells(.Cells.Rows.Count, 1).End(xlUp).Row If EndRow < 1 Then MsgBox "请在打印记录表第一行添加标题!", vbInformation, "AuthorQQ 84857038" GoTo ErrorExit End If Set Rng = .Range(.Cells(2, 1), .Cells(EndRow + 1, RngCol)) Arr = Rng.Value For i = UBound(Arr) To LBound(Arr) + 1 Step -1 For j = LBound(Arr, 2) To UBound(Arr, 2) Arr(i, j) = Arr(i - 1, j) Next j Next i i = 1 Arr(1, 1) = EndRow For j = LBound(Ar) To UBound(Ar) Arr(1, j + 1) = Ar(1, j) Next j Rng.Value = Arr SetBorders .UsedRange SetFormat .UsedRange End With pSht.PrintOut ErrorExit: Set iSht = Nothing Set rSht = Nothing Set pSht = Nothing Set Rng = Nothing Set Wb = Nothing End Sub Private Sub SetBorders(ByVal Rng As Range) With Rng.Borders .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlThin End With End Sub Private Sub SetFormat(ByVal Rng As Range) With Rng With .Font .Size = 11 .Name = "宋体" End With .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .Columns.AutoFit End With End Sub
以上是关于20171114xlVba选定单行记录并打印的主要内容,如果未能解决你的问题,请参考以下文章