Подтвердить что ты не робот

Как установить выделение в Nothing при программировании Excel с помощью VBA?

Когда я создаю график после использования range.copy и range.paste, он оставляет выбранный диапазон палитр, а затем, когда я создаю график несколькими строками позже, он использует выделение в качестве первой серии на графике. Я могу удалить серию, но есть ли более элегантный способ сделать это? Я попробовал

Set selection = nothing

но это не позволит мне установить выделение. Я также попробовал selection.clear, но это просто очистило последние ячейки, которые были выбраны, и по-прежнему добавили дополнительную серию в сюжет.

4b9b3361

Ответ 1

Cells(1,1).Select

Он перенесет вас в ячейку A1, тем самым отменив существующий выбор.

Ответ 2

Application.CutCopyMode = False

Ответ 3

Просто используйте

SendKeys "{ESC}"

тем самым отменив ваш выбор.

Ответ 4

Выберите любую ячейку и выключите cutcopymode.

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

Ответ 5

Существует способ ВЫБРАТЬ НИЧЕГО, чтобы решить вашу проблему.

  • Создать форму (один прямоугольник)
  • Назовите его в Shapes Database → > например: "Ready"
  • Обратитесь к нему MYDOC.Shapes( "Ready" ) и измените видимость на False

Если вы хотите, чтобы Excel SELECT NOTHING выполнял это:

MYDOC.Shapes("Ready").visible=True
MYDOC.Shapes("Ready").Select
MYDOC.Shapes("Ready").visible=False

Это СКРЫТЬ выбор и в вашем окне ничего еще не выбран PLUS: Слово "Готов" отображается в левом верхнем углу листа.

Ответ 6

Я не думаю, что это можно сделать. Вот код, скопированный без изменений с сайта Chip Pearson: http://www.cpearson.com/excel/UnSelect.aspx.

UnSelectActiveCell

Эта процедура удалит активную ячейку из списка.

Sub UnSelectActiveCell()
    Dim R As Range
    Dim RR As Range
    For Each R In Selection.Cells
        If StrComp(R.Address, ActiveCell.Address, vbBinaryCompare) <> 0 Then
            If RR Is Nothing Then
                Set RR = R
            Else
                Set RR = Application.Union(RR, R)
            End If
        End If
    Next R
    If Not RR Is Nothing Then
        RR.Select
    End If
End Sub

UnSelectCurrentArea

Эта процедура удалит область, содержащую активную ячейку, из выделения.

Sub UnSelectCurrentArea()
    Dim Area As Range
    Dim RR As Range

    For Each Area In Selection.Areas
        If Application.Intersect(Area, ActiveCell) Is Nothing Then
            If RR Is Nothing Then
                Set RR = Area
            Else
                Set RR = Application.Union(RR, Area)
            End If
        End If
    Next Area
    If Not RR Is Nothing Then
        RR.Select
    End If
End Sub

Ответ 7

Вы можете просто использовать этот код в конце. (Не используйте False)

Application.CutCopyMode = True

Ответ 8

В Excel 2007 комбинация с использованием свойства select и CutCopyMode позволяет reset выбирать все. Он работал для моего использования.

Application.CutCopyMode = xlCopy
ActiveSheet.Range("A" & lngRow).Select

Отношения Madhur

Ответ 9

У меня была эта проблема с Excel 2013. У меня была установка "заморозки", которая вызвала проблему. Проблема была устранена, когда я удалил замороженные панели.

Ответ 10

Вы можете установить Application.ScreenUpdating = False и выбрать ячейку вне поля зрения, а затем установить для параметра .ScreenUpdating значение true. Это, по крайней мере, не отображает выбранные ячейки в текущем виде.

Ответ 11

Selection(1, 1).Select будет выбирать только верхнюю левую ячейку вашего текущего выбора.

Ответ 12

Если вы используете кнопку для вызова процедуры вставки,

попробуйте активировать кнопку после операции. это успешно удаляет выбор

без

  • необходимость возиться со скрытыми вещами
  • выбор другой ячейки (что точно противоположно тому, что было задано)
  • влияет на режим буфера обмена
  • с хакерским методом нажатия escape, который не всегда работает

НТН

Sub BtnCopypasta_Worksheet_Click()
   range.copy
   range.paste
BtnCopypasta.Activate
End sub

НТН

Ответ 13

Пробовал все ваши предложения, не повезло, но вот идея, которая сработала для меня выберите ячейку вне диапазона выбора (скажем, AAA1000000) и затем снова выберите A1.

Range ( "AAA1000000" ). Activate

Range ( "A1" ). Activate

Гай