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

时间:2015-07-06 22:08:28

标签: excel vba excel-vba

我已经构建了一个宏,在打开的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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

您需要创建一个新的应用程序实例。在当前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