如何让下面这些代码循环执行,直到B列和C列单元格内无数据为止
Range("B2:C2").Select
Selection.Copy
Sheets("放样").Select
Range("O7").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Sheets("监抽").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Sheets("台账录入").Select
Range("B3:C3").Select
Selection.Copy
Sheets("放样").Select
Range("O7").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Sheets("监抽").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Sheets("台账录入").Select
End Sub
看下图:
代码如下:
Sub 俺要打印()
Sheets("台账录入").Select '选中"台账录入"表
Dim i As Long, r As Long
r = Range("B" & Rows.Count).End(xlUp).Row '获取B列最大行号
If r < 2 Then Exit Sub '最大行号<2时退出sub
For i = 2 To r
Range("O7:P7") = Range("B" & i).Resize(1, 2).Value '将B:C两格的值赋值给"放样"表的O7:P7
Sheets("放样").PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False '打印"放样"表
Sheets("监抽").PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False '打印"监抽"表
Next
MsgBox "打印完毕", 64 '结束时弹出提示
End Sub
追问不对,我是要把“台账录入“表里面的B2,C2开始的每行数据循环的复制到“放样”表的O7,P7,然后打印放样和监抽两张表,放样表的O7,P7是固定的,每复制打印一次,台账录入表自动往下循环一列,或者删除台账录入表的第2行,直至台账录入表无B列和C列数据为止,像下图这样的3个表
已经循环了呀,For i ...... Next,这不就是循环语句嘛。
你是说,我没有写上删除数据的代码呗?
在倒数第二行的前边,
就是说在Msgbox弹出提示的前边添加一行代码,
Range("B2:C" & r).ClearContents '清空内容
算了,有可能跟我其他的代码有冲突,运行不起来,会影响我其他的代码运算,这代码一运行我其他有个地方就出错了,运算不出结果了,代码太多了,难得去查了,不能因小失大