当前位置:编程学习 > VB >>

VB调用EXCEL打印报表的小问题

为什么我调用了EXCEL设置了
XLAPP.VISIBER=FALSE,把应用程序设置不可见,然后在PRINTPRIVIEW的时候就会出现应用程序忙,、什么转到,重试的一类的话呢,还有一个问题,我用PRINTPRIVIEW的时候怎么在没有打印机的情况下也执行QUIT呢,退出EXCEL.
还有一个问题,怎么通过VB设置页面设置里面的页眉页脚呢?
谢谢阿,我是新手,多谢大家帮助

源码如下;
Private Sub 打印标签_Click()
Dim xlApp As excel.Application
  Dim xlbook     As excel.Workbook
          Dim xlsheet     As excel.Worksheet

Set xlApp = New excel.Application
 Dim lngCount     As Long
'Set xlApp = CreateObject("Excel.Application")
'激活EXCEL应用程序
Dim strSource, strDestination As String
strSource = App.Path & "\baobiao.xls"
'RegisterFee.xls就是一个模版文件
strDestination = App.Path & "\Temp.xls"
FileCopy strSource, strDestination
xlApp.Visible = True '隐藏EXCEL应用程序窗口
'Set xlbook = xlApp.Workbooks.Open(strDestination)
'打开工作簿,strDestination为一个EXCEL报表文件
'Set xlsheet = xlbook.Worksheets(1)

Set xlbook = xlApp.Workbooks.Open(strDestination)
          Set xlsheet = xlApp.Worksheets(1)


With xlsheet.PageSetup
            .PaperSize = xlPaperA4    'A4纸
            .Orientation = xlLandscape    '横向
           .LeftMargin = 0
           .RightMargin = 0
           .TopMargin = 0
           .BottomMargin = 0
  End With

   
                  adoRst.MoveFirst
                  With xlsheet
                          For lngCount = 1 To 11
                                  .Columns(lngCount).HorizontalAlignment = xlHAlignCenter
                                  .Columns(lngCount).VerticalAlignment = xlVAlignCenter
                          Next
                          For lngCount = 1 To adoRst.RecordCount
                                  
                                  .Cells(lngCount, 2) = adoRst!身份性质
                                .Cells(lngCount, 4) = adoRst!档号
                                  If Len(adoRst!姓名) = 2 Then
                                  .Cells(lngCount, 6) = Mid(adoRst!姓名, 1, 1)
                                  .Cells(lngCount, 8) = Mid(adoRst!姓名, 2, 1)
                                 ElseIf Len(adoRst!姓名) = 3 Then
                                   .Cells(lngCount, 6) = Mid(adoRst!姓名, 1, 1)
                                  .Cells(lngCount, 7) = Mid(adoRst!姓名, 2, 1)
                                  .Cells(lngCount, 8) = Mid(adoRst!姓名, 3, 1)
                                   ElseIf Len(adoRst!姓名) = 4 Then
                                  .Cells(lngCount, 6) = Mid(adoRst!姓名, 1, 1)
                                    .Cells(lngCount, 7) = Mid(adoRst!姓名, 2, 1)
                                  .Cells(lngCount, 8) = Mid(adoRst!姓名, 3, 1)
                                  .Cells(lngCount, 9) = Mid(adoRst!姓名, 4, 1)
                         End If
                           
                                  .Cells(lngCount, 11) = adoRst!出生时间
                                 
                                  adoRst.MoveNext
                          Next
                        
                  End With
             
  xlApp.DisplayAlerts = False
  


    xlsheet.PrintPreview '执行打印

  
  xlbook.Close
        xlApp.Quit
      
    
        Set xlsheet = Nothing
            Set xlbook = Nothing
  Set xlApp = Nothing

End Sub


补充:VB ,  数据库(包含打印,安装,报表)
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,