Как отменить выделение диапазона ячеек ?
Q: Как управиться с такой болячкой: ActiveSheet.Cells.Select
После прекращения работы макроса диапазон остается выделенным. Как это выделение убрать?
A: Попробуй вот как:
Selection.Cells(1).Select
Фокус ввода попадёт после этого на первую ячейку ранее выделенного диапазона.
[ Назад ]
[ Оглавление ]
[ Далее ]
Оставить комментарий
Комментарий:
можно использовать BB-коды Максимальная длина комментария — 4000 символов. |
|
|
Комментарии
1.
10 января 2020, 13:44:09
ActiveCell.Select
Фокус ввода попадёт после этого на первую ячейку ранее выделенного диапазона.
2.
Аноним
28 апреля 2006, 12:38:25
Worksheet.Range[‘A10:H11’].ClearOutLine
Снять выделение после вставки |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Модератор:Naeel Maqsudov
-
Avsha
- Сообщения:664
- Зарегистрирован:08 сен 2005, 13:47
- Откуда:KZ
Программно копирую диапазон …
Range(«B13:L13»).Copy
Range(«N13»).Select
ActiveSheet.Paste
После этого остается выделенным «пунктирной рамкой копирования» диапазон B13:L13
и просто выделенным диапазон, куда копировали.
Как снять эти выделения. При ручном способе достаточно нажать ESC.
Так как правильно сделать, программно посылать ESC или еще как-то?
-
pashulka
- Сообщения:831
- Зарегистрирован:24 ноя 2004, 03:46
- Контактная информация:
10 ноя 2005, 11:13
Избавиться о пунктирной линии можно, если использовать, например :
Хотя в Вашем случае достаточно просто использовать :
Код: Выделить всё
Range("B13:L13").Copy Destination:=Range("N13")
' Or
Range("B13:L13").Copy Range("N13")
P.S. Если параметры форматирования ячеек копировать не надо, то от применения метода .Copy можно отказаться.
-
Avsha
- Сообщения:664
- Зарегистрирован:08 сен 2005, 13:47
- Откуда:KZ
10 ноя 2005, 13:55
pashulka,
Ваши варианты копирования диапазонов я взял на вооружение,
Application.CutCopyMode = False — у меня работает только когда его устанавливаешь в конце всех операций,
почему-то при автоматической записи макроса, Excel ставит ее перед командой Copy, и функция не работает.
Sub Макрос1()
‘ Макрос1 Макрос
‘ Макрос записан 10.11.2005 (HomePC)Range(«B5:B12»).Select
Application.CutCopyMode = False
Selection.Copy
Range(«G5»).Select
ActiveSheet.Paste
End Sub
А можно ли упростить код для случая копирования только формата диапазона?
Мой исходный вариант:
Range(«B13:L23»).Copy
Range(«N13»).Select
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
-
pashulka
- Сообщения:831
- Зарегистрирован:24 ноя 2004, 03:46
-
Контактная информация:
10 ноя 2005, 14:28
Устанавливать значение свойства .CutCopyMode действительно необходимо после применения метода .Copy
Что касается копирования форматов ячеек, то могу предложить вот этот вариант :
Код: Выделить всё
Range("B13:L23").Copy
Range("N13").PasteSpecial Paste:=xlFormats
Application.CutCopyMode = False
' Or
With Application
.Range("B13:L23").Copy
.Range("N13").PasteSpecial Paste:=xlFormats
.CutCopyMode = False
End With
-
Avsha
- Сообщения:664
- Зарегистрирован:08 сен 2005, 13:47
- Откуда:KZ
11 ноя 2005, 03:34
Спасибо,
устраняется как я понял лишнее действие выделения диапазона,
и лишние операнды в функции PasteSpecial также можно опустить.
Вот какой заботливый редактор записи макросов
А снятие обычного выделения с конечного диапазона после завершения копирования я решил простым выделение одной из ячеек, например Range(«A1»).Select.
-
Игорь Акопян
- Сообщения:1419
- Зарегистрирован:13 окт 2004, 17:11
- Откуда:СПБ
- Контактная информация:
11 ноя 2005, 10:34
заботливый редактор записи макросов
Он просто повторяет то что делаешь ты — максимально точно Любой клик в ячейки — он отметит select’ом
А уж ты, как программер, лезешь в доки и хелпы и убираешь лишнее
-
Avsha
- Сообщения:664
- Зарегистрирован:08 сен 2005, 13:47
- Откуда:KZ
11 ноя 2005, 20:07
Да нет, претензий к редактору макросов у меня нет, наоборот код узнаешь при его работе.
А «заботливый» употребил в добром и благодарном смысле.
Содержание
- Какие типы диапазонов имеются в Excel
- Адрес выделенного диапазона
- Копирование диапазона
- Обращение к конкретной ячейке
- Запрос значения ячейки
- Снять выделение со строк и столбцов
- Множественное выделение
- Чтение значения из ячейки
- Определение номеров первой и последней строки
Какие типы диапазонов имеются в Excel
Вы можете выделить диапазоны следующих типов:
- одна отдельная ячейка;
- несколько смежных между собой ячеек;
- один или несколько столбцов;
- одну или несколько строк;
- рабочий лист целиком;
- также можете выделить комбинацию типов (множественное выделение).
Когда вы обрабатываете выделенный диапазон, то должны быть уверены, что он нужного типа иначе не исключено, что макрос будет работать не так как хотелось.
Перед тем как обрабатывать выделенный диапазон ячеек необходимо убедиться, а на сомом ли деле это диапазон ячеек, а не график или кнопка. Следующим образом можно предупредить пользователя, что выделен совсем не диапазон.
' Проверяем выделен ли диапазон If TypeName(Selection) <> "Range" Then MsgBox "Необходимо выделить диапазон ячеек", vbOKOnly Or vbInformation, "Определение типа диапазона" Exit Sub End If
Адрес выделенного диапазона
Для определения адреса выделенного диапазона ячеек в VBA Excel используется свойство Address объекта Selection.
Объект Selection – это совокупность всех выделенных ячеек на листе Excel. Это может быть одна ячейка, смежный или несмежный диапазон ячеек, представляющий совокупность смежных диапазонов. Если выделение состоит из несмежного диапазона, адреса смежных диапазонов, из которых он состоит, будут перечислены через запятую.
Стоит отметить: несмотря на то, что в выделенном диапазоне может содержаться много ячеек, активной может быть только одна. Она представлена объектом ActiveCell. Для определения ее адреса в коде VBA Excel также используется свойство Address.
Sub Primer1() MsgBox “Адрес выделенного диапазона: “ & Selection.Address & _ vbNewLine & “Адрес активной ячейки: “ & ActiveCell.Address & _ vbNewLine & “Номер строки активной ячейки: “ & ActiveCell.Row & _ vbNewLine & “Номер столбца активной ячейки: “ & ActiveCell.Column End Sub |
Скопируйте и запустите код на выполнение. В результате получите что-то вроде этого, зависящее от того, какие диапазоны вы выберите:
Определение адресов выделенного диапазона и активной ячейки
Копирование диапазона
Функция записи макросов Excel используется не столько для создания хорошего кода, сколько для поиска названий необходимых объектов, методов и свойств. Например, при записи операции копирования и вставки можно получить код:
Sub Макрос()
Range("
A1"
).Select
Selection.Copy
Range("
B1"
).Select
ActiveSheet.Paste
End Sub
Обратите внимание, что данная программа выделяет ячейки. Однако в VBA для работы с объектом не обязательно его выделять. Данную процедуру можно заменить значительно более простой — применить метод Сору, который использует аргумент, представляющий адрес места вставки копируемого диапазона.
Sub CopyRange()
Range("
А1"
).Copy Range("
В1"
)
End Sub
Предполагается, что рабочий лист является активным и операция выполняется на активном рабочем листе. Чтобы скопировать диапазон на другой рабочий лист или в другую книгу, необходимо задать ссылку:
Sub CopyRange2()
Workbooks("
File1.xlsx"
).Sheets("
Лист1"
).Range("
A1"
).Copy _
Workbooks("
File2.xlsx"
).Sheets("
Лист2"
).Range("
A1"
)
End Sub
Еще одним подходом к решению этой задачи является использование для представления диапазонов объектных переменных:
Sub CopyRange3()
Dim Rngl As Range, Rng2 As Range
Set Rngl = Workbooks("
File1.xlsx"
).Sheets("
Лист1"
).Range("
A1"
)
Set Rng2 = Workbooks("
File2.xlsx"
).Sheets("
Лист2"
).Range("
A1"
)
Rngl.Copy Rng2 End Sub
Можно копировать большой диапазон. Адрес места вставки определяется единственной ячейкой (представляющей верхний левый угол вставляемого диапазона):
Sub CopyRange4 ()
Range("
А1:С800"
).Copy Range("
D1"
)
End Sub
Для перемещения диапазона ячеек вместо метода Сору используется метод Cut.
Если размер копируемого диапазона не известен используется свойство CurrentRegion, возвращающее объект Range, который соответствует прямоугольнику ячеек вокруг заданной ячейки:
Sub CopyCurrentRegion2()
Range("
A1"
).CurrentRegion.Copy Sheets("
Лист2"
).Range("
A1"
)
End Sub
Метод End имеет один аргумент, определяющий направление, в котором увеличивается выделение ячеек. Следующий оператор выделяет диапазон от активной ячейки до последней непустой ячейки внизу:
Range (ActiveCell, ActiveCell.End(xlDown)).Select
Три остальные константы имитируют комбинации клавиш при выделении в других направлениях: xlUp (вверх), xlToLeft (влево) и xlToRight (вправо).
В прилагаемом Excel-файле определено несколько распространенных типов выделения ячеек (см. рис. 1). Код любопытен тем, что является также примером создания контекстного меню.
Обращение к конкретной ячейке
Прежде чем читать или записывать значение в ячейке, нужно определиться с тем, как можно указать какая именно ячейка нам необходима.
Полный путь к ячейке A1 в Книге1 на Листе1 можно записать двумя вариантами:
- С помощью Range
- С помощью Cells
Пример 1: Обратиться к ячейке A3 находящейся в Книге1 на Листе1
Workbooks("Книга1.xls").Sheets("Лист1").Range("A3") ' Обратиться к ячейке A3 Workbooks("Книга1.xls").Sheets("Лист1").Cells(3, 1) ' Обратиться к ячейке в 3-й строке и 1-й колонке (A3)
Однако, как правило, полный путь редко используется, т.к. макрос работает с Книгой, в которой он записан и часто на активном листе. Поэтому путь к ячейке можно сократить и написать просто:
Пример 2: Обратиться к ячейке A1 в текущей книге на активном листе
Range("A1") Cells(1, 1)
Если всё же путь к книге или листу необходим, но не хочется его писать при каждом обращении к ячейкам, можно использовать конструкцию With End With. При этом, обращаясь к ячейкам, необходимо использовать в начале “.” (точку).
Пример 3: Обратиться к ячейке A1 и B1 в Книге1 на Листе2.
With Workbooks("Книга1").Sheets("Лист2") ' Вывести значение ячейки A1, которая находится на Листе2 MsgBox .Range("A1") ' Вывести значение ячейки B1, которая находится на Листе2 MsgBox .Range("B1") End With
Так же, можно обратиться и к активной (выбранной в данный момент времени) ячейке.
Пример 4: Обратиться к активной ячейке на Листе3 текущей книги.
Application.ActiveCell ' полная запись ActiveCell ' краткая запись
Запрос значения ячейки
Следующая процедура запрашивает значение у пользователя и вставляет его в ячейку А1:
Sub GetValuel()
Range("
A1"
).Value = InputBox("
Введите значение"
)
End Sub
Однако при выполнении этой процедуры возникает проблема. Если пользователь щелкнет на кнопке Отмена в окне ввода данных, то процедура удалит данные, которые находились в текущей ячейке. Модифицированная версия процедуры адекватно реагирует на щелчок на кнопке Отмена и не выполняет при этом никаких действий:
Sub GetValue2()
Dim UserEntry As Variant
UserEntry = InputBox("
Введите значение"
)
If UserEntry <> "
"
Then Range("
A1"
).Value = UserEntry
End Sub
Во многих случаях следует проверить правильность данных, введенных пользователем. Например, необходимо обеспечить введение только чисел в диапазоне от 1 до 12 (рис. 2). Это можно сделать при помощи процедуры GetValue3(), код которой приведен в Модуле1 приложенного Excel-файла. Некорректные данные игнорируются, и окно запроса значения отображается снова. Этот цикл будет повторяться, пока пользователь не введет правильное значение или не щелкнет на кнопке Отмена.
Снять выделение со строк и столбцов
Аналогичным образом работает снятие выделения со строк и столбцов.
Если вы хотите выбрать весь лист, а затем снять выделение с некоторых конкретных столбцов, вы можете сделать это следующим образом:
- Выделите весь лист, нажав на треугольник в верхней левой части листа (или используйте сочетание клавиш Ctrl+A)
- Удерживая клавишу Ctrl, выберите нужные столбцы, нажимая на соответствую букву столбца.
Множественное выделение
Функция выше работает только с единичным выделением. Но как быть если выделено сразу несколько областей? Правильно, нужно разобраться с каждой по отдельности.
Сначала определим, на самом ли деле у нас несколько областей. Для этого посчитаем их с помощью следующего кода:
' Количество выделенных областей AreasCount = Selection.Areas.Count
Ну а теперь организуем цикл, который будет проходить по всем областям. Заодно посчитаем количество ячеек, столбцов, строк. Определим является ли выделение смешанным (например выделен столбец и еще ограниченная область ячеек).
' Определим и запомним тип выделения первой области FirstRangeType = RangeType(Selection.Areas(1)) For Each Area In Selection.Areas ' Определяем тип каждой области и ведем подсчет (без перекрытия областей) CurreRangeType = RangeType(Area) Select Case CurreRangeType Case "Строка" RowsCount = RowsCount + Area.Rows.Count Case "Столбец" ColsCount = ColsCount + Area.Columns.Count Case "Лист" ColsCount = ColsCount + Area.Columns.Count RowsCount = RowsCount + Area.Rows.Count Case "Область" ColsCount = ColsCount + Area.Columns.Count RowsCount = RowsCount + Area.Rows.Count RangeAreasCount = RangeAreasCount + 1 End Select ' Количество ячеек CellsCount = CellsCount + Area.CountLarge ' Определяем является ли выделение смешанным (разный тип выделения) If CurreRangeType <> FirstRangeType Then DifferentType = True Next ' Информационное сообщение MsgBox "Множественное выделение: " & IIf(AreasCount > 0, "Да", "Нет") & vbCrLf & _ "Тип выделения: " & IIf(DifferentType, "Смешанный", "Однотипный") & vbCrLf & _ "Количество диапазонов: " & AreasCount & vbCrLf & _ "Количество столбцов: " & Format(ColsCount, "#,###") & vbCrLf & _ "Количество строк: " & Format(RowsCount, "#,###") & vbCrLf & _ "Областей ячеек: " & Format(RangeAreasCount, "#,###") & vbCrLf & _ "Количество ячеек: " & Format(CellsCount, "#,###") & vbCrLf & _ "", vbOKOnly Or vbInformation, "Определение типа выделенного диапазона"
Как вы видите организовать перебрать все выделенные области можно циклом For Each и для каждого диапазона вызывать функцию RangeType.
Ввод значения в следующую пустую ячейку
Если требуется ввести значение в следующую пустую ячейку столбца или строки, используйте код (рис. 3):
Sub GetData()
Dim NextRow As Long
Dim Entry1 As String, Entry2 As String
Do'
Определение следующей пустой строки
NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1'
Запрос данных
Entry1 = InputBox("
Введите имя"
)
If Entry1 = "
"
Then Exit Sub
Entry2 = InputBox("
Введите сумму"
)
If Entry2 = "
"
Then Exit Sub'
Запись данных
Cells(NextRow, 1) = Entry1
Cells(NextRow, 2) = Entry2
Loop
End Sub
Это бесконечный цикл. Для выхода из него (щелкните на кнопке Cancel) использовались операторы Exit Sub. Обратите внимание строку, в который определяется значение переменной NextRow. Если вам трудно ее понять, проанализируйте содержимое ячейки: перейдите в последнюю ячейку столбца А и нажмите <End> и <↑>. После этого будет выделена последняя непустая ячейка в столбце А. Свойство Row возвращает номер этой строки; чтобы получить расположенную под ней строку (следующую пустую строку), к этому номеру прибавляется 1.
Чтение значения из ячейки
Есть 3 способа получения значения ячейки, каждый из которых имеет свои особенности:
- Value2 – базовое значение ячейки, т.е. как оно хранится в самом Excel-е. В связи с чем, например, дата будет прочтена как число от 1 до 2958466, а время будет прочитано как дробное число. Value2 – самый быстрый способ чтения значения, т.к. не происходит никаких преобразований.
- Value – значение ячейки, приведенное к типу ячейки. Если ячейка хранит дату, будет приведено к типу Date. Если ячейка отформатирована как валюта, будет преобразована к типу Currency (в связи с чем, знаки с 5-го и далее будут усечены).
- Text – визуальное отображение значения ячейки. Например, если ячейка, содержит дату в виде “число месяц прописью год”, то Text (в отличие от Value и Value2) именно в таком виде и вернет значение. Использовать Text нужно осторожно, т.к., если, например, значение не входит в ячейку и отображается в виде “#####” то Text вернет вам не само значение, а эти самые “решетки”.
По-умолчанию, если при обращении к ячейке не указывать способ чтения значения, то используется способ Value.
Пример 5: В ячейке A1 активного листа находится дата 01.03.2018. Для ячейки выбран формат “14 марта 2001 г.”. Необходимо прочитать значение ячейки всеми перечисленными выше способами и отобразить в диалоговом окне.
MsgBox Cells(1, 1) ' выведет 01.03.2018 MsgBox Cells(1, 1).Value ' выведет 01.03.2018 MsgBox Cells(1, 1).Value2 ' выведет 43160 MsgBox Cells(1, 1).Text ' выведет 01 марта 2018 г. Dim d As Date d = Cells(1, 1).Value2 ' числовое представление даты преобразуется в тип Date MsgBox d ' выведет 01.03.2018
Пример 6: В ячейке С1 активного листа находится значение 123,456789. Для ячейки выбран формат “Денежный” с 3 десятичными знаками. Необходимо прочитать значение ячейки всеми перечисленными выше способами и отобразить в диалоговом окне.
MsgBox Range("C1") ' выведет 123,4568 MsgBox Range("C1").Value ' выведет 123,4568 MsgBox Range("C1").Value2 ' выведет 123,456789 MsgBox Range("C1").Text ' выведет 123,457р. Dim c As Currency c = Range("C1").Value2 ' значение преобразуется в тип Currency MsgBox c ' выведет 123,4568 Dim d As Double d = Range("C1").Value2 ' значение преобразуется в тип Double MsgBox d ' выведет 123,456789
При присвоении значения переменной или элементу массива, необходимо учитывать тип переменной. Например, если оператором Dim задан тип Integer, а в ячейке находится текст, при выполнении произойдет ошибка “Type mismatch”. Как определить тип значения в ячейке, рассказано в следующей статье.
Пример 7: В ячейке B1 активного листа находится текст. Прочитать значение ячейки в переменную.
Dim s As String Dim i As Integer s = Range("B1").Value2 ' успех i = Range("B1").Value2 ' ошибка
Таким образом, разница между Text, Value и Value2 в способе получения значения. Очевидно, что Value2 наиболее предпочтителен, но при преобразовании даты в текст (например, чтобы показать значение пользователю), нужно использовать функцию Format.
Определение номеров первой и последней строки
Чтобы вычислить номера первой и последней строки выделенного диапазона, будем исходить из того, что первая ячейка смежного диапазона находится на первой строке, а последняя – на последней строке выделенного диапазона.
Sub Primer3() Dim i1 As Long, i2 As Long i1 = Selection.Cells(1).Row i2 = Selection.Cells(Selection.Cells.Count).Row MsgBox “Первая строка: “ & i1 & _ vbNewLine & “Последняя строка: “ & i2 End Sub |
Результат будет таким, зависит от выделенного диапазона:
Номера первой и последней строки выделенного смежного диапазона
Таким же образом можно вычислить номера первого и последнего столбцов выделенного диапазона, которые можно использовать для обработки информации по столбцам.
Обратите внимание, что для несмежных диапазонов этот пример не работает. Оказалось, что базу данных клиентов заполнять в таблице Excel намного удобнее, чем на портале сервиса, а для загрузки в сервис достаточно сформировать несложный файл. Заполнил новые строки, выделил их по любому столбцу, нажал кнопку и файл готов.
Источники
- https://micro-solution.ru/excel/vba/type-range
- https://vremya-ne-zhdet.ru/vba-excel/vydelennyy-diapazon-yacheyek-selection-address-range/
- https://baguzin.ru/wp/rabota-s-diapazonami-v-vba/
- https://codernotes.ru/articles/vba/chtenie-i-zapis-znacheniya-yachejki-v-vba.html
- https://micro-solution.ru/excel/ranges/deselect-cells
I would like the final appearance after my VBA has finished running to be empty of selection — to have no cell or range on any sheet colored (if it was range selected) or in a bold line box (anything that was selected). Pupose: to present the client with a neat final appearance.
I’ve searched and cannot find how to do this. There is an Unselect according to MS, but it doesn’t seem to do anything.
asked Sep 3, 2012 at 22:07
3
Select any cell and turn off CutCopy
:
Range("A1").Select
Application.CutCopyMode = False
Andrea
1,5064 gold badges17 silver badges19 bronze badges
answered Nov 25, 2013 at 13:31
user276802user276802
1091 silver badge3 bronze badges
2
Excel always has something selected. A work around is needed. Selecting a cell off screen will set focus there, so that won’t work in and of itself. This code places the cursor off screen and then scrolls the sheet back up to view A1
.
Sub NoSelect()
Range("BB100").Select
ActiveWindow.SmallScroll up:=100
ActiveWindow.SmallScroll ToLeft:=44
End Sub
If you are really wanting ‘nothing selected`, you can use VBA to protect the sheet at the end of your code execution, which will cause nothing to be selected. You can either add this to a macro or put it into your VBA directly.
Sub NoSelect()
With ActiveSheet
.EnableSelection = xlNoSelection
.Protect
End With
End Sub
As soon as the sheet is unprotected, the cursor will activate a cell.
answered Sep 5, 2012 at 18:38
CharlieRBCharlieRB
22.5k5 gold badges55 silver badges104 bronze badges
There is a tricky way to do it.
Create an object such as a button. Select this button, then hide it, and no cell will be selected.
ActiveSheet.Shapes("Button 1").Visible = True
ActiveSheet.Shapes("Button 1").Select
ActiveSheet.Shapes("Button 1").Visible = False
That’s it.
HopelessN00b
1,8843 gold badges21 silver badges29 bronze badges
answered Sep 4, 2014 at 13:06
The only answer is to cheat.
Hide column A
and row 1
Put cursor in A1
. There will be a tiny dot in the corner of B2
answered Sep 5, 2012 at 17:56
SeanCSeanC
3,6292 gold badges19 silver badges26 bronze badges
2
Depending on the size of your selection, to get rid of any artifacting (I don’t know if this is also an issue in 2013 Excel, but on Mac it was a constant pain for me) you can just loop through cell by cell and select each.
answered Feb 22, 2015 at 19:00
By turning off screen updating before selecting a cell, scroll to selected cells is temporarily disabled.
This code checks which cells are currently visible and selects the first cell below the visible range which is not in view.
Eg, when i try it: Visble range is A1:BC79, so this code selects A80 and scrolling down and to the right and running it again reveals the excel chooses the first cell NOT visible below the first visible column.
Dim r As Range Application.ScreenUpdating = False Set r = Application.ActiveWindow.VisibleRange r(r.Cells.Count + 1).Select Application.ScreenUpdating = True
Prasanna
4,0065 gold badges33 silver badges51 bronze badges
answered Apr 11, 2016 at 7:18
0
Very old question, but my answer for reference:
You can use
With ActiveSheet
.EnableSelection = xlNoSelection
.Protect
End With
answered Dec 20, 2018 at 12:44
JoostJoost
1501 gold badge2 silver badges8 bronze badges
Put it under the last row: Application.SendKeys ("{ESC}")
It will release the selection.
answered Nov 5, 2020 at 10:32
Use a trick: Add a shape, then select it and hide it.
Source code for this is in answer of different question on this site.
answered Oct 11, 2016 at 16:29
miroxlavmiroxlav
12.8k6 gold badges64 silver badges100 bronze badges
You can simply select another cell.
for eg:
Sheets("Sheetname").cells(1,1).select
This will select the a1 cell.
answered Aug 1, 2022 at 13:54
1