Наша задача научиться обрабатывать выделенный диапазон. Я надеюсь, что кнопка до сих пор связанна у Вас с макросом. Как ниже. То есть пользователь выделяет диапазон, а по нажатию на кнопку над ним производится работа. Например, умножения всех чисел на два.
Попробуем получить информацию о выделенном диапазоне:
Sub Test()
' обьявим переменную типа Range
Dim cur_range As Range
' активный расчетный лист
With ActiveSheet
' объект Range включает выделенный диапазон
Set cur_range = Selection
' активизируем Range
cur_range.Activate
' Адрес и количество строк и колонок
Debug.Print cur_range.Address
Debug.Print cur_range.Columns.Count
Debug.Print cur_range.Rows.Count
End With
End Sub
А вот и код. Ниже написана функция, которая значения в ячейках умножит на 2. Будь то одна ячейка или диапазон ячеек.
Sub Test()
Dim cur_range As Range
With ActiveSheet
Set cur_range = Selection
cur_range.Activate
For x = 1 To cur_range.Rows.Count
For y = 1 To cur_range.Columns.Count
' значению ячейки присвоить значение умноженно на 2
cur_range(x, y) = cur_range(x, y).Value * 2
Next y
Next x
End With
End Sub
Подводя короткий итог можно сказать, что выделенный диапазон можно получить используя объект Selection, перевести его в объект Range, от которого можно получить данные о местоположении выделенного диапазона, количества выделенных ячеек, а также иметь доступ к отдельным ячейкам используя объект Range.