Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays Excel vba-打印(数组)_Arrays_Vba_Excel_Printing - Fatal编程技术网

Arrays Excel vba-打印(数组)

Arrays Excel vba-打印(数组),arrays,vba,excel,printing,Arrays,Vba,Excel,Printing,关于为什么下面用于打印的vba无法工作的快速问题。。。如果我单独设置它(Sheet1.PrintOut),它可以很好地打印出来,但是如果我作为数组(Sheet1、Sheet2、Sheet3)进行设置,打印出来就不起作用。有人能解释为什么吗 Sub printnow() Dim Sheet1 As Worksheet Dim Sheet2 As Worksheet Dim Sheet3 As Worksheet With ThisWorkbook Set Sheet1 = .Sheets("

关于为什么下面用于打印的vba无法工作的快速问题。。。如果我单独设置它(Sheet1.PrintOut),它可以很好地打印出来,但是如果我作为数组(Sheet1、Sheet2、Sheet3)进行设置,打印出来就不起作用。有人能解释为什么吗

Sub printnow()

Dim Sheet1 As Worksheet
Dim Sheet2 As Worksheet
Dim Sheet3 As Worksheet

With ThisWorkbook

Set Sheet1 = .Sheets("database1")
Set Sheet2 = .Sheets("database2")
Set Sheet3 = .Sheets("database3")

'Setting up the print setup
Sheet3.PageSetup.PaperSize = xlPaperLegal

Sheet3.PageSetup.Orientation = xlPortrait

'Print

End With

Array(Sheet1,Sheet2.Sheet3).PrintOut Copies:=1

End Sub

Array
函数调用返回一个包含Sheet1、Sheet2和Sheet3的
Variant()
Variant()
没有
.PrintOut
方法-它不是对象。如果要对数组中的每个对象调用
.PrintOut
,只需在其上循环:

Dim sheet As Variant
For Each sheet In Array(Sheet1, Sheet2, Sheet3)
    sheet.PrintOut Copies:=1
Next

Array
函数调用返回一个包含Sheet1、Sheet2和Sheet3的
Variant()
Variant()
没有
.PrintOut
方法-它不是对象。如果要对数组中的每个对象调用
.PrintOut
,只需在其上循环:

Dim sheet As Variant
For Each sheet In Array(Sheet1, Sheet2, Sheet3)
    sheet.PrintOut Copies:=1
Next

您可以将工作表名称数组传递给
工作表
,它将对其进行处理

表单(数组(“数据库1”、“数据库2”、“数据库3”))。打印输出副本:=1

您也可以使用工作表。名称:

Sheets(数组(Sheet1.Name,Sheet2.Name,Sheet3.Name))。打印副本:=1

也可以使用图纸的索引:


工作表(数组(1,2,3))。打印输出副本:=1

您可以将工作表名称数组传递给
工作表
,它将对其进行处理

表单(数组(“数据库1”、“数据库2”、“数据库3”))。打印输出副本:=1

您也可以使用工作表。名称:

Sheets(数组(Sheet1.Name,Sheet2.Name,Sheet3.Name))。打印副本:=1

也可以使用图纸的索引:


工作表(数组(1,2,3))。打印输出副本:=1

您可以使用
此工作簿。工作表(数组(“数据库1”、“数据库2”、“数据库3”))。打印输出副本:=1
-如果您选择了多个工作表,则相当于Excel的“打印活动工作表”选项。您可以使用
此工作簿。工作表(数组(“数据库1”、“数据库2”),“数据库3”))。打印输出副本:=1
-这相当于Excel的“打印活动工作表”“如果您选择了多张图纸,则为选项。但它是否会保留我选择的页面方向/单元格选择规范?您具有相同的可选打印输出参数。”。如果不指定任何参数,则每张图纸都将使用上次打印时使用的设置假设我将上述图纸1重命名为Page1,将图纸2重命名为Page2,将图纸3重命名为Page3,其他所有参数都相同。如何制作图纸(数组(第1页、第2页、第3页))。打印输出工作?或者循环是我更新答案以演示其他选项的唯一方式。但它会保留我选择的页面方向/单元格选择规范吗?您有相同的可选打印输出参数。如果不指定任何参数,则每张图纸都将使用上次打印时使用的设置假设我将上述图纸1重命名为Page1,将图纸2重命名为Page2,将图纸3重命名为Page3,其他所有参数都相同。如何制作图纸(数组(第1页、第2页、第3页))。打印输出工作?或者循环是我更新答案以演示其他选项的唯一方法。