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

Subimprimir()Sheet("imprimir").SelectActivewindows.selectedsheet.PrintOutWithSheet("r... 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
展开
 我来答
unsamesky
2013-08-10 · TA获得超过2736个赞
知道小有建树答主
回答量:859
采纳率:100%
帮助的人:440万
展开全部

错误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第一个回答已经修正了所有问题!!

管理技术爱好者
2013-08-10 · 以技术助管理,为管理谋技术
管理技术爱好者
采纳数:568 获赞数:2162

向TA提问 私信TA
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hero_hq
2013-08-10 · 超过46用户采纳过TA的回答
知道小有建树答主
回答量:191
采纳率:0%
帮助的人:121万
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式