2012-09-03 22:07:34 +0000 2012-09-03 22:07:34 +0000
9
9

Excel VBA "Неизбранный" хотят

Я хотел бы, чтобы после того, как моя VBA закончит работу, она была пуста - не было ни ячейки, ни диапазона на любом листе, окрашенном в цвет (если был выбран диапазон), ни жирной строки (все, что было выбрано). Фотография: чтобы представить клиенту аккуратный финальный внешний вид.

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

Ответы (8)

10
10
10
2013-11-25 13:31:37 +0000

Выберите любую ячейку и выключите CutCopy:

Range("A1").Select
  Application.CutCopyMode = False
2
2
2
2012-09-05 18:38:48 +0000

В 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

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

2
2
2
2014-09-04 13:06:33 +0000

Есть хитрый способ сделать это.

Создать объект, например, кнопку. Выберите эту кнопку, затем спрячьте ее, и ни одна ячейка не будет выделена.

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

ActiveSheet.Shapes("Button 1").Select

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

Это все.

1
1
1
2018-12-20 12:44:14 +0000

Очень старый вопрос, но мой ответ для справки:

Вы можете использовать

With ActiveSheet
    .EnableSelection = xlNoSelection
    .Protect
End With
1
1
1
2015-02-22 19:00:40 +0000

В зависимости от размера вашей подборки, чтобы избавиться от любого артефакта (я не знаю, является ли это также проблемой в 2013 Excel, но на Mac это было постоянной болью для меня), вы можете просто петлять по ячейкам и выбирать каждую.

1
1
1
2016-04-11 07:18:46 +0000

При отключении обновления экрана перед выбором ячейки прокрутка до выбранных ячеек временно отключается.

Этот код проверяет, какие ячейки в настоящее время видны, и выбирает первую ячейку ниже видимого диапазона, который не виден. Eg, когда я попробую: Диапазон видимости - A1:BC79, поэтому этот код выбирает A80, прокручивает вниз и вправо, а при повторном запуске показывает, что Excel выбирает первую ячейку, НЕ видимую ниже первого видимого столбца.

Dim r As Range Application.ScreenUpdating = False Set r = Application.ActiveWindow.VisibleRange r(r.Cells.Count + 1).Select Application.ScreenUpdating = True
1
1
1
2012-09-05 17:56:56 +0000

Единственный ответ - жульничать.

Скрыть столбец A и строку 1

Поместить курсор в A1. В углу B2 будет маленькая точка.

0
0
0
2016-10-11 16:29:56 +0000

Используй трюк: Добавьте фигуру, затем выберите ее и спрячьте.

Исходный код для этого находится в ответе на другой вопрос на этом сайте.

Похожие вопросы

6
13
9
10
4