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

VBS 操作excel打印预览所有的工作表的问题

dim oExcel,oWb,oSheet,temp,fso,os
Set oExcel= CreateObject("Excel.Application")
Set fso = CreateObject("Scripting.FileSystemObject")
Const TemporaryFolder = 2
Set temp = fso.GetSpecialFolder(TemporaryFolder)
Set oWb = oExcel.Workbooks.Open(temp & "\test.xls")
oExcel.Application.Visible=True
For i=1 To oWb.Sheets.Count
Set oSheet = oWb.WorkSheets(i)
oSheet.printpreveiw
Next
oExcel.Quit

现在有这么个要求: 操作excel打印预览所有的工作表,就相当于选中所有工作表,然后打印预览的效果

求高手解惑!!!!! --------------------编程问答-------------------- 用Excel录制宏,把你需要的操作执行一遍,停止录制后参考生成的宏写VB代码就可以了。 --------------------编程问答-------------------- 不行诶....不是要手动选择,是要不管一张excel有多少sheet都打印(对所有不同的excel都匹配) --------------------编程问答--------------------
...
Dim aSheets() As Variant
Dim i As Long
ReDim aSheets(1 To oWb.Sheets.Count)
For i = 1 To oWb.Sheets.Count
    aSheets(i) = oWb.Sheets(i).Name
Next

Sheets(aSheets).PrintPreview
--------------------编程问答-------------------- Dim oExcel,oWb,oSheet,temp,fso,os
Set oExcel= CreateObject("Excel.Application")
Set fso = CreateObject("Scripting.FileSystemObject")
Const TemporaryFolder = 2
Set temp = fso.GetSpecialFolder(TemporaryFolder)
Set oWb = oExcel.Workbooks.Open(temp & "\test.xls")
oExcel.Application.Visible=True
Dim aSheets() As Variant
Dim i As Long
ReDim aSheets(1 To oWb.Sheets.Count)
For i = 1 To oWb.Sheets.Count
    aSheets(i) = oWb.Sheets(i).Name
Next

Sheets(aSheets).PrintPreview
os.PrintPreview



楼上大神,还是不行厄=  = --------------------编程问答-------------------- 那就用For Each方式循环遍列一个Excel文件中的所有Sheets,然后在显示打印预览即可。 --------------------编程问答--------------------
oWb.Sheets(aSheets).PrintPreview '<-加个前缀限定
--------------------编程问答--------------------
引用 5 楼  的回复:
那就用For Each方式循环遍列一个Excel文件中的所有Sheets,然后在显示打印预览即可。


支持这种方法。
补充:VB ,  VBA
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,