我想要用代码实现Excel临时文档的打印,打印机用默认打印机,不用选,要选纸、要设置打印方向,打印完之后自动关闭文档,不要出现保存提示直接关闭即可!请各位帮帮忙!谢谢啦,在线等!

解决方案 »

  1.   

    dim objExl as new Excel.appliction
    ....
    ....
    objExl.ActiveWindow.SelectedSheets.PrintOut Copies:=1
    ....
    ....
    objExl.Quit
    set objExl = Nothing
      

  2.   

    补充楼上的,要在引用里面引用这个dll,"microsoft excel appliction 10"也可以这样
    dim objExl as object
    set objExl=createobject("Excel.appliction")
    ....
    ....
    objExl.ActiveWindow.SelectedSheets.PrintOut Copies:=1
    ....
    ....
    objExl.Quit
    set objExl = Nothing
      

  3.   

    再加两行代码,改成这样就不会有那个保存提示了:
    dim objExl as new Excel.appliction
    ....
    ....
    objExl.ActiveWindow.SelectedSheets.PrintOut Copies:=1
    ....
    ....
    objExl.DisplayAlerts = False  '关闭时不提示保存
    objExl.Quit                '关闭EXCEL
    objExl.DisplayAlerts = True   '关闭时提示保存set objExl = Nothing
      

  4.   

    Dim xls   As New Excel.Application        'EXCEL应用程序对象
        Dim xbook As Excel.Workbook          'EXCEL工作薄对象
        Dim xsheet As Excel.Worksheet      'EXCEL工作表象
        Set xbook = xls.Workbooks.Open("D:\tmp.xls")    With xsheet.PageSetup
            .PaperSize = xlPaperA4'A4纸
            .Orientation = xlLandscape'横向
        End With
        xsheet.PrintOut Copies:=1
        xls.Quit
        Set xsheet = Nothing                     '释放对象变量
        Set xbook = Nothing
        Set xls = Nothing
      

  5.   

    少了一句Set xsheet = xbook.Worksheets(1)Dim xls   As New Excel.Application        'EXCEL应用程序对象
        Dim xbook As Excel.Workbook          'EXCEL工作薄对象
        Dim xsheet As Excel.Worksheet      'EXCEL工作表象
        Set xbook = xls.Workbooks.Open("D:\tmp.xls")    Set xsheet = xbook.Worksheets(1)    With xsheet.PageSetup
            .PaperSize = xlPaperA4'A4纸
            .Orientation = xlLandscape'横向
        End With
        xsheet.PrintOut Copies:=1
        xls.Quit
        Set xsheet = Nothing                     '释放对象变量
        Set xbook = Nothing
        Set xls = Nothing
      

  6.   

    xls.DisplayAlerts = False  '关闭时不提示保存
    xls.Quit                '关闭EXCEL
      

  7.   

    为什么大家都这么固执的要这样写呢?
    Dim xls   As New Excel.Application        'EXCEL应用程序对象
        Dim xbook As Excel.Workbook          'EXCEL工作薄对象
        Dim xsheet As Excel.Worksheet      'EXCEL工作表象下面的代码不好吗?
    Private Sub Command3_Click()
    On Error GoTo err1
        Dim i As Long
        Dim j As Long
        Dim a(1 To 10) As Integer
        Dim objExl As Excel.Application   '声明对象变量
        Me.MousePointer = 11            '改变鼠标样
        Set objExl = New Excel.Application '初始化对象变量
        objExl.SheetsInNewWorkbook = 1  '将新建的工作薄数量设为1
        objExl.Workbooks.Add          '增加一个工作薄
        objExl.Sheets(objExl.Sheets.Count).Name = "book1"  '修改工作薄名称
        
        objExl.Sheets.Add , objExl.Sheets("book1")
        objExl.Sheets(objExl.Sheets.Count).Name = "book2"
        
        objExl.Sheets.Add , objExl.Sheets("book2")
        objExl.Sheets(objExl.Sheets.Count).Name = "book3"
        
        objExl.Sheets("book1").Select     '选中工作薄<book1>
        For i = 1 To 10
            a(i) = Rnd * 10
        Next i
        
        For i = 1 To 10
           objExl.Cells(i, 1) = i
           objExl.Cells(i, 2) = a(i)
        Next
        objExl.Rows("1:1").Select         '选中第一行
        objExl.Selection.Font.Bold = True '设为粗体
        objExl.Selection.Font.Size = 24   '设置字体大小
        objExl.Cells.EntireColumn.AutoFit '自动调整列宽
        
        objExl.ActiveWindow.SplitColumn = 0
        objExl.ActiveWindow.SplitRow = 1  '拆分第一行
        objExl.ActiveWindow.FreezePanes = True   '固定拆分    objExl.ActiveSheet.PageSetup.PrintTitleRows = "$1:$1"  '设置打印固定行
        objExl.ActiveSheet.PageSetup.PrintTitleColumns = ""    '打印标题    objExl.ActiveSheet.PageSetup.RightFooter = "打印时间: " & _
                       Format(Now, "yyyy年mm月dd日 hh:MM:ss")
        objExl.ActiveWindow.View = xlPageBreakPreview  '设置显示方式
        objExl.ActiveWindow.Zoom = 100                 '设置显示大小
        objExl.ActiveSheet.Protect "123", DrawingObjects:=True, Contents:=True, Scenarios:=True
        objExl.Application.IgnoreRemoteRequests = False    'objExl.Visible = True                          '使EXCEL可见
        objExl.ActiveWindow.SelectedSheets.PrintOut Copies:=1
        objExl.Application.WindowState = xlMaximized    'EXCEL的显示方式为最大化
        objExl.ActiveWindow.WindowState = xlMaximized  '工作薄显示方式为最大化
        objExl.SheetsInNewWorkbook = 3                 '将默认新工作薄数量改回3个
        objExl.DisplayAlerts = False  '关闭时不提示保存
        objExl.Quit                '关闭EXCEL
        objExl.DisplayAlerts = True   '关闭时提示保存    Set objExl = Nothing    '清除对象
        Me.MousePointer = 0   '修改鼠标
    Exit Sub
    err1:
    objExl.SheetsInNewWorkbook = 3
    objExl.DisplayAlerts = False  '关闭时不提示保存
    objExl.Quit                '关闭EXCEL
    objExl.DisplayAlerts = True   '关闭时提示保存
    Set objExl = Nothing
    Me.MousePointer = 0End Sub
      

  8.   

    再就是如果只写
    objExl.DisplayAlerts = False  '关闭时不提示保存
    objExl.Quit                '关闭EXCEL
    不写下面这句
    objExl.DisplayAlerts = True   '关闭时提示保存你再打开Excel修改一下试试!!!