将范围与打印区域一起使用时发生VBA错误400

将范围与打印区域一起使用时发生VBA错误400,vba,excel,Vba,Excel,对于一个项目,我需要在Excel上打印一张工作表,该区域取决于事件。 作为一个初学者,我试图独自解决这个问题,但我不知道如何解决 以下是我的代码示例: Dim var1 As Range Dim var2 As Range Dim var3 As Range Set var1 = Range("$A$1:$A$10") Set var2 = Range("$A$12:$A$15") With ActiveSheet .PageSetup.PrintArea = Union(var1,

对于一个项目,我需要在Excel上打印一张工作表,该区域取决于事件。 作为一个初学者,我试图独自解决这个问题,但我不知道如何解决

以下是我的代码示例:

Dim var1 As Range
Dim var2 As Range
Dim var3 As Range

Set var1 = Range("$A$1:$A$10")
Set var2 = Range("$A$12:$A$15")

With ActiveSheet
    .PageSetup.PrintArea = Union(var1, var2).Address
    Set var3 = Range(.PageSetup.PrintArea)
    MsgBox (rngCompany3)
End With
我唯一得到的是“错误400”,没有更多的解释。我已经知道它在哪里:
Set var3=Range(.PageSetup.PrintArea)
是原因

我还尝试了
Set var3=.Range(.PageSetup.printparea)
Set var3=Range(.PageSetup.printparea.Address)
,但没有找到答案


如果你有任何想法,请告诉我,我会很高兴的。谢谢,Clément.

.PrintArea导出一个范围的地址()

.PrintArea=Me.Range(“”)。地址

.PrintArea导出范围()的地址

.PrintArea=Me.Range(“”)。地址

语句中的内容打印到控制台,尝试进行调试
Debug.Print.PageSetup.PrintArea
我无法重现您的错误。什么是rngCompany3
?如果这是您的代码片段,则可能是其他原因导致了错误。@Masoud,谢谢。rngCompany3是var3。我忘了换了。。。抱歉。@Josa Iracheta在我设置var3之前,它会打印“$A$1:$A$10,$A$12:$A$15”,因为它不会出现错误。您不能在范围上打印
MsgBox
。尝试以下操作:
MsgBox(var3.Address)
尝试通过将
with
语句中的内容打印到控制台进行调试
Debug.Print.PageSetup.PrintArea
我无法重现您的错误。什么是rngCompany3?如果这是您的代码片段,则可能是其他原因导致了错误。@Masoud,谢谢。rngCompany3是var3。我忘了换了。。。抱歉。@Josa Iracheta在我设置var3之前,它会打印“$A$1:$A$10,$A$12:$A$15”,因为它不会出现错误。您不能在范围上打印
MsgBox
。试试这个:
MsgBox(var3.Address)
.PrintArea = Me.Range("<RangeName>").Address