[英]VBA Excel deselect on another tab
我一直在漫游,但似乎找不到合適的答案。 我有一個宏,可以通過將數據粘貼到主頁上時將數據粘貼到該選項卡上,從而根據時間將數據保存在后台的另一個選項卡中。 問題是,將其粘貼到背景上的選項卡上時,它會使選擇保持活動狀態,我個人覺得這看起來有些草率。
有沒有一種方法可以清除不活動的選項卡上的選擇,而無需來回切換?
為了完整起見,這段代碼:
'Between 8 & 9
If y >= 0.334 And y <= 0.375 And Worksheets("800").Range("B1") <> DateValue(Now) Then
Ws8.Range("A3").PasteSpecial xlPasteAll
Worksheets("800").Range("B1") = DateValue(Now)
Worksheets("800").Range("C1") = TimeValue(Now)
'Between 9 & 10
ElseIf y >= 0.375 And y <= 0.417 And Worksheets("900").Range("B1") <> DateValue(Now) Then
Ws9.Range("A3").PasteSpecial xlPasteAll
Worksheets("900").Range("B1") = DateValue(Now)
Worksheets("900").Range("C1") = TimeValue(Now)
粘貼值后,使用↓代碼↓清除選擇。
Application.CutCopyMode = False
直接值分配優於Range.Copy
和Range().PasteSpecial xlPasteAll
。
您可能正在尋找Application.CutCopyMode = False
以及可能選擇Range("A1")
,如下所示:
Application.ScreenUpdating = False
If y >= 0.334 And y <= 0.375 And Worksheets("800").Range("B1") <> DateValue(Now) Then
Ws8.Range("A3").PasteSpecial xlPasteAll
Application.CutCopyMode = False
Ws8.Select
Ws8.Range("A1").Select
Worksheets("800").Range("B1") = DateValue(Now)
Worksheets("800").Range("C1") = TimeValue(Now)
'Between 9 & 10
ElseIf y >= 0.375 And y <= 0.417 And Worksheets("900").Range("B1") <> DateValue(Now) Then
Ws9.Range("A3").PasteSpecial xlPasteAll
Application.CutCopyMode = False
Ws9.Select
Ws9.Range("A1").Select
Worksheets("900").Range("B1") = DateValue(Now)
Worksheets("900").Range("C1") = TimeValue(Now)
End If
'now select your original sheet
Sheets("Sheet1").Select
Application.ScreenUpdating = True
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.