2012-09-03 22:07:34 +0000 2012-09-03 22:07:34 +0000
9
9

需要Excel VBA "取消选择 "功能

我希望在我的VBA运行结束后,最后的外观是空的 – 任何表上的单元格或范围都不着色(如果它是范围选择的),或者是粗线框(任何被选择的东西)。Pupose:给客户端呈现一个整洁的最终外观。

我找过了,找不到怎么做。根据MS的说法,有一个取消选择,但似乎没有任何作用。

答案 (8)

10
10
10
2013-11-25 13:31:37 +0000

选择任意单元格并关闭CutCopy

Range("A1").Select
  Application.CutCopyMode = False
2
2
2
2012-09-05 18:38:48 +0000

Excel总是有东西被选中。这就需要一个解决方法。在屏幕外选择一个单元格会将焦点设置在那里,所以这本身是行不通的。这段代码将光标置于屏幕外,然后将工作表向上滚动以查看A1

Sub NoSelect()    
  Range("BB100").Select
  ActiveWindow.SmallScroll up:=100
  ActiveWindow.SmallScroll ToLeft:=44
End Sub

如果你真的想要 “什么都不选",你可以在代码执行结束时使用VBA来保护工作表,这将导致什么都不选。您可以将其添加到一个宏中,或者直接将其放入您的VBA中。

Sub NoSelect()
   With ActiveSheet
   .EnableSelection = xlNoSelection
   .Protect
   End With
End Sub

只要工作表不受保护,光标就会激活一个单元格。

2
2
2
2014-09-04 13:06:33 +0000

有一个取巧的方法。

创建一个对象,比如一个按钮。选择这个按钮,然后隐藏它,就不会有单元格被选中。

ActiveSheet.Shapes("Button 1").Visible = True

ActiveSheet.Shapes("Button 1").Select

ActiveSheet.Shapes("Button 1").Visible = False

就这样。

1
1
1
2018-12-20 12:44:14 +0000

很老的问题,但我的回答可供参考。

你可以用

With ActiveSheet
    .EnableSelection = xlNoSelection
    .Protect
End With
```。
1
1
1
2015-02-22 19:00:40 +0000

根据你选择的大小,为了摆脱任何伪影(我不知道这是否也是2013年Excel中的问题,但在Mac上,这对我来说是一个持续的痛苦),你可以只通过单元格循环并选择每个单元格。

1
1
1
2016-04-11 07:18:46 +0000

在选择单元格前关闭屏幕更新,暂时禁止滚动到所选单元格。

这段代码检查当前哪些单元格是可见的,并选择可见范围以下的第一个未被查看的单元格。例如,当我尝试的时候。可见范围是A1:BC79,所以这段代码选择了A80,然后向下和向右滚动并再次运行它,发现excel选择了第一个可见列下面不可见的第一个单元格。

Dim r As Range Application.ScreenUpdating = False Set r = Application.ActiveWindow.VisibleRange r(r.Cells.Count + 1).Select Application.ScreenUpdating = True
1
1
1
2012-09-05 17:56:56 +0000

唯一的答案就是作弊。

隐藏列A和行1

将光标放在A1。在B2的角落里会有一个小点。

0
0
0
2016-10-11 16:29:56 +0000

##使用一个技巧。添加一个形状,然后选择它并隐藏它。

源代码在本网站的不同问题的回答中。