dim objExl as new Excel.appliction .... .... objExl.ActiveWindow.SelectedSheets.PrintOut Copies:=1 .... .... objExl.Quit set objExl = Nothing
补充楼上的,要在引用里面引用这个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
再加两行代码,改成这样就不会有那个保存提示了: dim objExl as new Excel.appliction .... .... objExl.ActiveWindow.SelectedSheets.PrintOut Copies:=1 .... .... objExl.DisplayAlerts = False '关闭时不提示保存 objExl.Quit '关闭EXCEL objExl.DisplayAlerts = True '关闭时提示保存set objExl = Nothing
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
少了一句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
为什么大家都这么固执的要这样写呢? 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.ActiveWindow.SelectedSheets.PrintOut Copies:=1
....
....
objExl.Quit
set objExl = Nothing
dim objExl as object
set objExl=createobject("Excel.appliction")
....
....
objExl.ActiveWindow.SelectedSheets.PrintOut Copies:=1
....
....
objExl.Quit
set objExl = Nothing
dim objExl as new Excel.appliction
....
....
objExl.ActiveWindow.SelectedSheets.PrintOut Copies:=1
....
....
objExl.DisplayAlerts = False '关闭时不提示保存
objExl.Quit '关闭EXCEL
objExl.DisplayAlerts = True '关闭时提示保存set objExl = Nothing
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
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
xls.Quit '关闭EXCEL
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
objExl.DisplayAlerts = False '关闭时不提示保存
objExl.Quit '关闭EXCEL
不写下面这句
objExl.DisplayAlerts = True '关闭时提示保存你再打开Excel修改一下试试!!!