关于自动打印保存EXCEL.VBA的一串代码?那位高手帮我看看这段代码错在哪里?谢谢!本人新手.望江湖指教!

Sub imprimir()
Sheet("imprimir").Select
Activewindows.selectedsheet.PrintOut
With Sheet("regostro")
x = .Range("65536").End(xlUp).Row + 1
For i = 0 To 33
.Cells(x + i, 1) = [l7]
.Cells(x + i, 2) = [a4]
.Cells(x + i, 3) = [a5]
.Cells(x + i, 4) = [a6]
.Cells(x + i, 5) = Cells(i + 6, 5)
.Cells(x + i, 6) = Cells(i + 6, 6)
.Cells(x + i, 7) = Cells(i + 6, 1)
End Sub

错误1:你的打印部分错误,PrintOut前面的selectedsheet这个对象应该是selectedsheets,表示所有选择的工作表的集合,实际上:

    1、要打印某个工作表,可以直接用Sheets("XX").PrintOut;这个表示打印xx工作表的所有内容

    2、要打印某个工作表的指定单元格部分,直接使用Sheets("xx").Range("A6:H12").PrintOut。这个表示打印xx工作表的A6:H12单元格区域。

 

错误2、关键词的使用错误,对于With语句,必须有一个End With语句与之相对应,否则将产生缺少"End With"关键词的错误。

 

错误3、循环语句错误,对于For循环语句,必须使用Next作为循环语句的结束,对于Do必须使用Loop作为循环语句的结束,这是VB语言的基础语法,必须严格遵守,否则代码将不被编译通过,针对以上三点,你的代码建议修改如下:

Sub imprimir()
    Sheet("imprimir").Activate
    Sheet("imprimir").PrintOut
    With Sheet("regostro")
        x = .Range("65536").End(xlUp).Row + 1
        For i = 0 To 33
           .Cells(x + i, 1) = [l7]
           .Cells(x + i, 2) = [a4]
           .Cells(x + i, 3) = [a5]
           .Cells(x + i, 4) = [a6]
           .Cells(x + i, 5) = Cells(i + 6, 5)
           .Cells(x + i, 6) = Cells(i + 6, 6)
           .Cells(x + i, 7) = Cells(i + 6, 1)
        Next
    End With
End Sub

 

回过头去看其他人的答案,原来foxtiger第一个回答已经修正了所有问题!!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-10
Sub imprimir()
Sheets("imprimir").Select
ActiveWindow.SelectedSheets.PrintOut
With Sheets("regostro")
x = .Range("a65536").End(xlUp).Row + 1 '注意所选的列,这里是第一列,如果列中有空白单元格,则程序可能会出问题。
For i = 0 To 33
.Cells(x + i, 1) = [l7]
.Cells(x + i, 2) = [a4]
.Cells(x + i, 3) = [a5]
.Cells(x + i, 4) = [a6]
.Cells(x + i, 5) = Cells(i + 6, 5)
.Cells(x + i, 6) = Cells(i + 6, 6)
.Cells(x + i, 7) = Cells(i + 6, 1)
Next i
End With
End Sub
第2个回答  2013-08-10
Sub imprimir()
Sheet("imprimir").Select
Activewindows.selectedsheet.PrintOut
With Sheet("regostro")
x = .Range("65536").End(xlUp).Row + 1
For i = 0 To 33
.Cells(x + i, 1) = [l7]
.Cells(x + i, 2) = [a4]
.Cells(x + i, 3) = [a5]
.Cells(x + i, 4) = [a6]
.Cells(x + i, 5) = Cells(i + 6, 5)
.Cells(x + i, 6) = Cells(i + 6, 6)
.Cells(x + i, 7) = Cells(i + 6, 1)

End with ‘你少了这一句!!!!!!!!!!

End Sub