简体   繁体   English

VBA Excel在另一个选项卡上取消选择

[英]VBA Excel deselect on another tab

I've been roaming around but I can't seem to find a suitable answer. 我一直在漫游,但似乎找不到合适的答案。 I have a macro that saves the data on another tab in the background depending on the time by pasting the data on that tab when I paste it on my main page. 我有一个宏,可以通过将数据粘贴到主页上时将数据粘贴到该选项卡上,从而根据时间将数据保存在后台的另一个选项卡中。 The problem is that when pasting it on a tab on the background it keeps the selection active which I personally find to look a little sloppy. 问题是,将其粘贴到背景上的选项卡上时,它会使选择保持活动状态,我个人觉得这看起来有些草率。

Is there a way to clear the selection on a not active tab without switching back and forth to it? 有没有一种方法可以清除不活动的选项卡上的选择,而无需来回切换?

For completeness a piece of the code: 为了完整起见,这段代码:

'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)

After you paste the value use ↓code↓ to clear the selection. 粘贴值后,使用↓代码↓清除选择。

  Application.CutCopyMode = False 

Direct value assignments are preferable over Range.Copy and Range().PasteSpecial xlPasteAll . 直接值分配优于Range.CopyRange().PasteSpecial xlPasteAll

You are probably looking for Application.CutCopyMode = False as well as maybe selecting Range("A1") , maybe like below: 您可能正在寻找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