我有一个宏,可以在不同的工作表中复制和粘贴很多单元格。这很好用,我的问题是:
是否可以让整个宏在后台运行?
由于宏将被没有经验的excel用户使用,我不希望他们看到宏跳转并复制大量数据,这会让屏幕变得疯狂。
提前感谢您的回答!
答案 0 :(得分:3)
在宏的开头使用application.screenupdating = false
然后Application.Screenupdating = true
结束,屏幕不会跳转。
还值得在最后添加Msgbox("The macro has finished!")
或类似内容,以便他们知道它已经完成了它。
答案 1 :(得分:2)
我猜你的'宏'看起来像这样。
Sub Macro1()
Sheets("Sheet1").Select
ActiveWindow.SmallScroll Down:=4
Range("J16").Select
Selection.Copy
Sheets("Sheet2").Select
ActiveWindow.SmallScroll Down:=5
ActiveWindow.SmallScroll ToRight:=2
Range("I19").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Sheet1").Select
ActiveWindow.SmallScroll Down:=-72
Range("A1").Select
End Sub
如果这样写的话会更好。
Option Explicit
Sub Macro1()
With Worksheets("Sheet2")
.Range("I19") = Worksheets("sheet1").Range("J16").Value
End With
End Sub
答案 2 :(得分:1)
您可以使用以下工具来实现目标:
Application.ScreenUpdating = False
'关闭屏幕更新这将隐藏任何屏幕更新,直到您再次打开它。如果您的应用程序正在使用各种.Activate
等,您可能希望在
要在“后台”启动某些内容,您可以启动它
Workbook.Open
Workbook.SheetActivate, Workbook.SheetDeactivate
Worksheet.Activate, Worksheet.Deactivate
' etc.