我一直在漫游,但似乎找不到合适的答案。我有一个宏,可以通过将数据粘贴到主页上时将数据粘贴到该选项卡上,从而根据时间将数据保存在后台的另一个选项卡中。问题在于,将其粘贴到背景上的选项卡上时,它会使选择保持活动状态,我个人觉得这看起来有些草率。
是否有一种方法可以清除不活动的选项卡上的选择,而无需来回切换?
为完整起见,一部分代码:
'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)
答案 0 :(得分:1)
粘贴值后,使用↓代码↓清除选择。
Application.CutCopyMode = False
直接值分配优于Range.Copy
和Range().PasteSpecial xlPasteAll
。
答案 1 :(得分:1)
您可能正在寻找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