Private Sub Command1_Click()
cn.Open ConnectStringd
rs.Open strsql, cn, 1, 1
If rs.EOF Then
MsgBox "对不起,找不到员工的记录,请确定是否存在记录,或者主管暂未审批!"
cn.Close
Exit Sub
End If
Set xlapp = CreateObject("Excel.Application") '创建EXCEL应用类
xlapp.Visible = True '设置EXCEL可见
Set xlbook = xlapp.Workbooks.Open("D:\xls\tua.xls") '打开EXCEL工作簿
Set xlsheet = xlbook.Worksheets(1) '打开EXCEL工作表
xlsheet.Activate '激活工作表  i = 4 '输出数据从第5行开始
    rs.MoveFirst
    Do Until rs.EOF
        i = i + 1
xlsheet.Cells(i, 2) = rs![nb]       '员工卡号
xlsheet.Cells(i, 3) = rs![ne]       '实际姓名If (i - 4) Mod 20 = 0 And i <> 4 Then  '每20条记录为一页
xlsheet.Range(xlsheet.Cells(i, 1), xlsheet.Cells(i, rs.Fields.Count)).Select     
SendKeys "^{end}"           '向应用程序EXCEL发送一个组合键CTRL+END,使光标移到文件尾
xlsheet.HPageBreaks.Add Before:=ActiveCell   '添加一个分页符(在这里出错)
End If
rs.MoveNext
Loop
xlapp.Worksheets.PrintPreview
xlapp.DisplayAlerts = False
xlapp.Quit
Set xlapp = Nothing
cn.Close
end sub问题是这样的,以上程序,导入数据在excel下预览时,只要数据不超过一页,
单击按钮预览什么问题都没有。
一旦数据超过一页,第一次单击预览时也没问题,但如果再次单击按钮,打开预览时就会在
xlsheet.HPageBreaks.Add Before:=ActiveCell
提示:对象Add的方法'HPageBreaks'失败
我想不通,希望高手指点一下。。谢谢!

解决方案 »

  1.   


    xlsheet.HPageBreaks.Add Before:=xlsheet.ActiveCell
    呵呵,想通了吧
      

  2.   

    帮你改好一点
    .....
    xlsheet.Activate '激活工作表xlsheet.Cells(4, 2).copyfromrecordset rs for i = 24 to rs.RecordCount+4 step 20
    xlsheet.HPageBreaks.Add Before:=xlsheet.Cells(i, 2) 
    next ixlapp.Worksheets.PrintPreview
    .........
      

  3.   

    谢谢,不过在这里还是出错,xlsheet.HPageBreaks.Add Before:=xlsheet.ActiveCell
    提示:未找到方法或数据成员
      

  4.   

    糊涂了,ActiveCell是Application成员
    xlsheet.HPageBreaks.Add Before:=xlapp.ActiveCell
      

  5.   

    hhjjhjhj谢谢你,能不能把这句改下:
    xlsheet.HPageBreaks.Add Before:=xlsheet.ActiveCell
      

  6.   

    hhjjhjhj,谢谢你,终于搞定了!!
    xlsheet.HPageBreaks.Add Before:=xlapp.ActiveCell
    就是这句,改成你那样就行了。
    谢谢。。