Установка выбора в Ничто при программировании Excel - PullRequest
21 голосов
/ 15 ноября 2008

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

Set selection = nothing

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

Ответы [ 16 ]

0 голосов
/ 01 июля 2018

Если вы выберете ячейку в уже выбранном диапазоне, она не будет работать. Но выбор диапазона за пределами исходного выбора очистит исходный выбор.

'* Оригинальный выбор *' ActiveSheet.Range ( "A1: K10") Выберите

.

'* Новые выборы *' ActiveSheet.Range ( "L1"). Выберите

'* Тогда *' ActiveSheet.Range ( "A1"). Select

0 голосов
/ 28 мая 2018

Ни один из многих ответов с Application.CutCopyMode или .Select не сработал для меня.

Но я нашел решение, которое здесь не выложено, и оно мне очень понравилось!

От пользователя StackExchange SuperUser: Требуется отменить выбор Excel VBA

Если вы действительно хотите «ничего не выбрано», вы можете использовать VBA для защиты листа в конце выполнения вашего кода, что ничего не даст. Вы можете добавить это в макрос или напрямую в VBA.

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

Как только лист окажется незащищенным, курсор активирует ячейку.

Надеюсь, это поможет кому-то с такой же проблемой!

0 голосов
/ 02 ноября 2015

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

Range ( "AAA1000000"). Activate

Range ( "A1"). Activate

Guy

0 голосов
/ 20 августа 2014

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

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

без

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

НТН

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

НТН

0 голосов
/ 25 ноября 2013

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

0 голосов
/ 16 марта 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...