...EXCEL.VBA的一串代码?那位高手帮我看看这段代码错在哪里?谢谢!本人...
发布网友
发布时间:2024-03-11 15:19
我来回答
共3个回答
热心网友
时间:2024-08-11 21:30
错误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第一个回答已经修正了所有问题!!
热心网友
时间:2024-08-11 21:27
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
热心网友
时间:2024-08-11 21:26
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