我希望 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 上这对我来说一直很痛苦)您可以循环遍历每个单元格并选择每个单元格。