在EXCL里用VB做一个循环语句.成功加分

来源:百度知道 编辑:UC知道 时间:2024/09/22 16:51:58
我要打印一个表格,条件是当前是第几张总共要打几张.比如这是第1张.我要打100张.那么从1/100到2/100到3/100......一直打到100/100那么停下来.
当前张数的单元格在E6.总张数在G6单元格.要求是E6在从1到100在一直的变.一个数就是打印一张.找高手帮帮我,并加注让我能理解,成功了我给重谢并加500分.
我已做出来,,我运行成功了.大家看一下.VB我只学过一点点.
Range("E6").Select
ActiveCell.FormulaR1C1 = 0
Range("G6").Select

z = ActiveCell.FormulaR1C1 + 0
ActiveCell.FormulaR1C1 = z

100: Range("E6").Select
i = ActiveCell.FormulaR1C1 + 0
ActiveCell.FormulaR1C1 = i + 1

If z < 1 Then GoTo 300

If i >= z Then GoTo 200
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

GoTo 100
300: MsgBox "请输入要打印的张数", vbDefaultButton2, "提示"
GoTo 200
200: Range("E6").Select
ActiveCell.FormulaR1C1 = 0
Range("G6").Select
ActiveCell.FormulaR1C1 = 0
End Sub

不太明白你的意思,我想是这样的你看对不,假如表格有100页,你E6里是5,G6里是10,那么就打印第5页后面的10页也就是5到14页。对不?如果这样可以这样做。打开VB编辑器生成一个宏,在宏里写如下代码
Dim a As Integer
dim b as Integer
dim p as integer'当前页
a = Range("E6")
b = Range("G6")
for i =0 to b
p=a+i
Range("E6")=p
ActiveWindow.SelectedSheets.PrintOut From:=p, To:=p, Copies:=1, Collate:=True
next i
运行宏应该没问题。

Sub 打印()
For i = 1 To [G6]
[E6] = i
ActiveSheet.PrintOut
Next
End Sub

很简单的循环语句,似乎没有什么要解释的。