需要 Excel VBA“取消选择”

需要 Excel VBA“取消选择”

我希望 VBA 运行完成后的最终外观为空,即任何工作表上都没有单元格或范围(如果选择了范围)或粗线框(任何选定的内容)。目的:向客户呈现整洁的最终外观。

我搜索了好久,还是没找到如何操作。根据 MS 的说法,有一个 Unselect,但它似乎什么也没做。

答案1

选择任意单元格并关闭CutCopy

  Range("A1").Select
  Application.CutCopyMode = False

答案2

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

一旦工作表取消保护,光标就会激活一个单元格。

答案3

有一个棘手的方法可以做到这一点。

创建一个对象,例如一个按钮。选择此按钮,然后隐藏它,则不会选择任何单元格。

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

ActiveSheet.Shapes("Button 1").Select

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

就是这样。

答案4

根据您选择的大小,为了消除任何伪影(我不知道这是否也是 2013 Excel 中的一个问题,但在 Mac 上这对我来说一直很痛苦)您可以循环遍历每个单元格并选择每个单元格。

相关内容