2

每当用户启动“MyMacro”时,我想清除取消选择当前选择。

我正在使用以下代码:

Sub MyMacro()

    If Not IsSheetExists("Memory") Then
        Worksheets.Add(After:=Worksheets(Worksheets.Count)).name = "Memory"
    End If

    Sheets("Memory").Visible = xlSheetVisible 'change to xlSheetVeryHidden
    ActiveWorkbook.Sheets("Sheet1").Activate

    ClearAllSheets

    '......
End Sub

Sub ClearAllSheets()
    For Each sh In ActiveWorkbook.Sheets
        sh.Cells.Clear
        sh.Buttons.Delete
        Selection.Clear
    Next sh
End Sub

为什么不Selection.Clear 清除取消选择当前选择?

4

4 回答 4

5

好吧,

.Clear旨在清除单元格/范围内的内容(和格式),但不是取消选择

因此,当您使用 时Selection.Clear,没有任何反应

正如您也提到的,为什么不只选择一个虚拟单元格呢?

于 2013-10-30T07:05:32.393 回答
1

Selection.Clear不起作用,因为您没有任何选定的范围。

如果你这样编码:

sh.Cells.Select
Selection.Clear

然后它可能会起作用。
但最好不要使用Select.

更新: 添加:

Dim rng as range

Set rng = Selection

或者在你的情况下:

set rng = sh.Application.Selection

然后执行:

Selection.Clear.

它将清除当前选择的范围。

于 2013-10-30T06:42:28.130 回答
0

尝试这个

Application.CutCopyMode = False

这个对我有用

最良好的问候

于 2019-10-08T20:00:20.113 回答
-3

试试这个

Selection.ClearContents
于 2015-04-22T16:47:01.070 回答