![](/img/trans.png)
[英]Copy and paste multiple cells without overwriting existing cells EXCEL VBA
[英]excel vba copy paste cells without user noticing
我有一個宏,可以在不同的工作表中復制並粘貼很多單元格。 這很好,我的問題是:
是否可以使整個宏在后台運行?
由於宏將由經驗不足的excel用戶使用,因此我不希望他們看到宏跳來跳去並復制大量數據,這會使屏幕發瘋。
預先感謝您的回答!
在宏的開頭使用application.screenupdating = false
然后最后是Application.Screenupdating = true
,並且屏幕不會跳來跳去。
還值得添加Msgbox("The macro has finished!")
或類似的結尾,以便他們知道它已經完成了工作。
我猜你的“宏”看起來像這樣。
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
了解有關如何避免在Excel VBA中使用“選擇”的更多信息。 。
您可以使用以下工具來實現自己的目標:
Application.ScreenUpdating = False
'關閉屏幕更新 這將隱藏所有屏幕更新,直到您再次將其打開。 如果您的應用程序帶有各種.Activate
等,則可能需要保存初始選擇點
要在“后台”啟動某件事,您可以啟動它
Workbook.Open
Workbook.SheetActivate, Workbook.SheetDeactivate
Worksheet.Activate, Worksheet.Deactivate
' etc.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.