要求对象是因为你的工作薄里面没有sheet2这张工作表
sheet2 不等于sheets(2),你应该想表达sheets(2)吧
Sub ab()
i = Sheets(1).Range("a" & Cells.Rows.Count).End(3).Row
Sheets(1).Range("a2").Resize(i - 1, 2).Copy Sheets(2).Range("a2")
ActiveSheet.PrintOut '默认打印机
ActiveSheet.PrintOut ActivePrinter:="打印机全称" '指定打印机
End Sub
有两个疑问:1、工作表的最大行数有10000000行吗?!如果没有,就不能在 2 To 10000000间循环;2、代码的功能是将Sheet2工作表的第1列除A1外全部录入Sheet1工作表Cells(2, 1)单元格中的数据,将Sheet2工作表的第2列除B1外全部录入Sheet1工作表Cells(2, 2)单元格中的数据?!
2007版及以上的EXCEL表格的最大行数是1048576,不可能到你i的最大值10000000,所以
Dim i
For i = 2 To 10000000
要改为:
Dim i as long
For i = 2 To 1048576
不知道你说的对象是什么?