double arrow

Шаг 10 - Использование Range

Мы с вами будем использовать это свойство для выделения ячеек. Но прежде давайте просто посмотрим, как вообще можно их выделять. Конечно, если вы установите курсор на любую ячейку это тоже выделение. Вы можете вводить в неё формулы или числа, менять формат. Выделить можно и несколько ячеек. Если установить курсор в одну ячейку и, не отпуская левую кнопку мыши, тащить, то выделится целый диапазон. Также можно выделять отдельные ячейки, как на рисунке ниже.

Реализуется это довольно просто. Выделяете первую ячейку, держите клавишу Ctrl и, не отпуская её, другие ячейки. С выделенными диапазонами можно проводить большое количество операций. Вот для программной реализации этих возможностей и служит свойтсво Range. Оно есть у очень многих обьектов Excel.

Этот пример показывает как выделить ячейку и поместить туда число.

Sub Test()

With Application.Workbooks.Item("Test.xls")

Worksheets("Лист2").Activate

Range("A2") = 2

Range("A3") = 3

End With

End Sub

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

С помощью этого метода можно помещать и формулы:

......

Range("A4") = "=A2+A3"

......

Можно указать и целый диапазон:

......

Range("A2:A5") = 2

......

Если необходимо наоборот получить из ячейки формулу или значение, то никто не мешает сделать вот так:

Sub Test()

With Application.Workbooks.Item("Test.xls")

Worksheets("Лист2").Activate

Range("A2") = 2

Range("A3") = "=A2+2"

MsgBox Range("A3").Formula + " - " + Str(Range("A3").Value)

End With

End Sub

Следующий пример очень важен, он показывает возможности абсолютной и относительной адресации. Мы создаем обьект типа Range, а на основе его производим адресацию. В следующем примере число поместится не в A1, а в D3. То есть у нас есть возможность выделять диапазон по абсолютному адресу, а внутри его использовать относительную адресацию.

Sub Test()

With Application.Workbooks.Item("Test.xls")

Worksheets("Лист2").Activate

Dim HelloRange As Range

Set HelloRange = Range("D3:D10")

HelloRange.Range("A1") = 3

End With

End Sub


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: