Sub testCopyModelRange() Set ModelSheet = ThisWorkbook.Worksheets("单据模板") Set PrintSheet = ThisWorkbook.Worksheets("批量打印") CopyModelRange ModelSheet, PrintSheet, 2 End Sub Public Sub CopyModelRange(ByVal ModelSheet As Worksheet, ByVal PrintSheet As Worksheet, ByVal CopyTime As Long) Dim ModelRng As Range '模板单元格 Dim modelRowHeight() As Double '模板行高数据 Dim desRng As Range '粘贴位置 Dim i As Long '行号 With ModelSheet If Application.WorksheetFunction.Count(.Cells) > 0 Then '计数防止计算行号发生错误 EndRow = .Cells.Find("*", .Cells(1, 1), xlValues, xlWhole, xlByRows, xlPrevious).Row + 1 EndCol = .Cells.Find("*", .Cells(1, 1), xlValues, xlWhole, xlByColumns, xlPrevious).Column '获取单据模板单元格区域 Set ModelRng = .Range(.Cells(1, 1), .Cells(EndRow, EndCol)) Debug.Print ModelRng.Address Else MsgBox "模板为空!" Exit Sub End If End With With PrintSheet .Cells.Clear '批量复制单据模板 For i = 1 To CopyTime If Application.WorksheetFunction.Count(.Cells) = 0 Then Set desRng = .Range("A1") Else EndRow = .Cells.Find("*", .Cells(1, 1), xlValues, xlWhole, xlByRows, xlPrevious).Row + 2 Set desRng = .Cells(EndRow, 1) End If ModelRng.Copy desRng Next i End With End Sub