簡體   English   中英

VBA Excel在另一個選項卡上取消選擇

[英]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.CopyRange().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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM