0

我设置了一个代码,它将复制另一个工作簿中的最后一张工作表并将其添加到所述工作簿的末尾。但是我不希望我的代码打开工作簿。

我曾尝试在我的代码前后使用 application.ScreenUpdating,但它似乎不起作用。我还尝试将屏幕更新代码放在子的开头和结尾。

With otherwb
   Application.ScreenUpdating = False
   .Sheets(.Sheets.count).Copy After:=.Sheets(.Sheets.count)
   Application.ScreenUpdating = True
End With

我是否使用错误的 Screenupdating 代码,或者工作簿仍然为我打开的原因?

4

1 回答 1

0

如果不打开文件,您无法在 VBA 中实现此目的。

但是,您可以创建一个 Application 对象,并将其可见性设置为 false,因此用户不会注意到此实例正在运行:

Dim app as Excel.Application 
app.Visible = false 
'do stuff

至于为什么ScreenUpdating不起作用...您正在暂停运行代码的应用程序实例的屏幕更新。不适用于您要创建的应用程序实例(在后台不可见地运行)。

于 2019-06-19T13:52:23.180 回答