|
Private Sub CommandButton2_Click()
' 按成绩排序打印 Macro
' 以下为页面设置代码
ActiveSheet.PageSetup.PrintArea = "$A$2:$E$247"
num = 5 '实际应为程序根据人数计算出来(246人/50人=5页)
For i = 1 To (num - 1)
Set ActiveSheet.HPageBreaks(i).Location = Range(Cells((i * 50 + 2), 1), Cells((i * 50 + 2), 1))
Next
' 以下为打印代码,已屏蔽
' ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)"
End Sub
以上代码可以执行,以下代码就不能执行,红色部分出错
红色的代码在页面有6页(分页预览视图中,以下同)及以上时不出错,但执行过上面的代码后 (页面设置为4页时)在执行下面的代码,红色部分肯定报错,而人数比较多班级比较少时不报错,人数多,班级也多时也会报错
Private Sub CommandButton1_Click()
' 按班级排序打印 Macro
'以下为页面设置代码
Dim rmin '班级的起始行,由程序控制获得
Dim rmax '班级的结束行,由程序控制获得
num = 6 '实际应为程序根据班级号计算出来共六个班所以等于6
ActiveSheet.PageSetup.PrintArea = "$A$2:$E$247"
For i = 1 To (num - 1)
rmin = i + 1 '应为程序获得,本文为方便,使用简单计算
rmax = i * 49 + 2 '应为程序获得,本文为方便,使用简单计算
Set ActiveSheet.HPageBreaks(i).Location = Range(Cells(rmax, 1), Cells(rmax, 1))
Next
'以下为打印代码,已屏蔽
' ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)"
End Sub
请高手指点,能给个合适的解决方案。
[ 本帖最后由 mxf21cn 于 2009-12-20 22:00 编辑 ] |
|