我想打开并运行VBA宏,而不显示新的Excel窗口已打开

我想打开并运行VBA宏,而不显示新的Excel窗口已打开,vba,excel,Vba,Excel,我构建了一个宏,该宏在打开的Excel文件中运行宏,然后关闭。当新窗口打开时,是否可以使其不显示(隐藏)? 如果可以,如何将其添加到下面的代码中 Sub Open_Fill_Close() Worksheets("Sheet1").Select invoiceNo = Range("A1") Set myData = Workbooks.Open("HD:Users:UserT:Desktop:QR.xlsm") Worksheets("QR Code").Select Worksheets

我构建了一个宏,该宏在打开的Excel文件中运行宏,然后关闭。当新窗口打开时,是否可以使其不显示(隐藏)? 如果可以,如何将其添加到下面的代码中

Sub Open_Fill_Close()

Worksheets("Sheet1").Select
invoiceNo = Range("A1")

Set myData = Workbooks.Open("HD:Users:UserT:Desktop:QR.xlsm")
Worksheets("QR Code").Select
Worksheets("QR Code").Range("Y39").Select
RowCount = Worksheets("QR Code").Range("Y39").CurrentRegion.Rows.Count
With Worksheets("QR Code").Range("Y39")
    .Offset(RowCount, 0) = invoiceNo

End With

Application.Run "QR.xlsm!ExportCellsAsPicture"

Workbooks("QR.xlsm").Close False

End Sub

您将需要创建一个新的应用程序实例。在当前Excel会话中打开图纸将使其可见

Dim xlApp as New Excel.Application
xlApp.Visible = False 'Visible is False by default, so this isn't necessary
Dim myData As Excel.Workbook
Set myData = xlApp.Workbooks.Add("HD:Users:UserT:Desktop:QR.xlsm")
myData.Worksheets("QR Code").Select
myData.Worksheets("QR Code").Range("Y39").Select
RowCount = myData.Worksheets("QR Code").Range("Y39").CurrentRegion.Rows.Count
With myData.Worksheets("QR Code").Range("Y39")
    .Offset(RowCount, 0) = invoiceNo

End With

Application.Run "QR.xlsm!ExportCellsAsPicture"

Workbooks("QR.xlsm").Close False

wrkBook.Close False
xlApp.Quit

要在屏幕上隐藏宏的操作,请添加
Application.ScreenUpdating=False
到代码的开头。最后将其设置回
True

为什么要将宏存储在另一个工作簿中?我认为你不能做你想做的事。但是,如果您将其存储为自定义功能区或其他东西,您可以实现这一点,但它会变得更加复杂。请选择一个答案,说明是否可以关闭此功能区。保持清洁,让我们不要夸大未回答的问题,我到底应该把它放在我的代码中的什么地方?谢谢通常,在代码的最开始和最末尾。ie:
Sub Foo()
然后
Application.screenUpdate=False