Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КИТ_лабораторные_VBA.doc
Скачиваний:
177
Добавлен:
11.05.2015
Размер:
3.07 Mб
Скачать

Лабораторная работа №5 операции с ячейками и рабочими листами ms excel в программах на vba

Цель работы – Освоение разработки программ на VBA для обработки данных, размещенных в рабочих листах табличного процессора MS Excel.

5.1 Основные способы ссылок на ячейки рабочего листа Excel

Простейшие способы ссылки на значения отдельных ячеек – Range(ячейка).Value или Cells(строка, столбец).Value.

Пример 5.1 – Программа считывает число из ячейки A2, извлекает из него квадратный корень и выводит результат в ячейку A4.

Sub primer5_1()

x = Range("A2").Value

y = Sqr(x)

Range("A4").Value = y

End Sub

Это же можно реализовать и многими другими способами, например:

Sub primer5_1()

x = Cells(2, 1).Value

y = Sqr(x)

Cells(4, 1).Value = y

End Sub

или

Sub primer5_1()

Cells(4, 1).Value = Sqr((Cells(2, 1).Value))

End Sub

В качестве адресов ячеек могут использоваться не только конкретные значения, но и переменные. Например, в операторе x = Cells(i,j).Value переменная x получит значение, равное содержимому ячейки, расположенной в i-й строке и j-м столбце текущего рабочего листа. При этом переменные i и j должны иметь некоторые значения, причем они должны представлять собой целые положительные числа (если это не так, то программа прерывается с выводом сообщения об ошибке).

Можно также ссылаться на ячейки, отсчитывая их не от левого верхнего угла рабочего листа (т.е. не от ячейки A1), а от некоторой заданной ячейки. Например, ссылка Range(“E7”).Cells(3,2).Value означает ссылку на значение ячейки F9, так как, если отсчитывать ячейки от E7, то ячейка F9 находится в третьей строке и втором столбце от заданной ячейки. Эту же ссылку можно указать как Cells(7,5).Cells(3,2).Value. Вместо конкретных номеров строк и столбцов могут указываться переменные. Например, ссылка Cells(7,5).Cells(i,j).Value – этот ссылка на ячейку, расположенную в i-й строке и j-м столбце относительно ячейки E7.

Ссылки на ячейки могут также указываться относительно ячейки, выделенной с помощью мыши. Например, ссылка Selection.Cells(3,2).Value означает ссылку на значение ячейки, находящейся в третьей строке и втором столбце от выделенной ячейки. Если при этом выделено несколько ячеек, то ссылка определяется относительно левого верхнего угла выделенного диапазона.

Во многих случаях удобно указать диапазон ячеек, связав с ним некоторую переменную, а затем ссылаться на отдельные ячейки этого диапазона. Для связывания переменных с диапазонами ячеек используется оператор Set. Основные способы такого связывания следующие:

  • ссылка на прямоугольный диапазон ячеек, заданный явно:

Set переменная = Range(левый_верхний_угол, правый_нижний_угол)

  • ссылка на диапазон ячеек, выделенный на рабочем листе с помощью мыши:

Set переменная = Selection

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

Set переменная = ячейка.CurrentRegion

В последнем случае ячейка – это ссылка (в форме Range, Cells или Selection) на любую ячейку в заполненном диапазоне.

Примеры операторов Set, связывающих переменные с диапазонами ячеек, приведены в таблице 5.1.

Таблица 5.1 – Примеры описания диапазонов ячеек в операторе Set

Пример

Описание

Set d = Range(“A2:E8”)

Переменная d связывается с диапазоном ячеек A2:E8.

Set d = Range(Cells(2,1),Cells(8,5))

То же, что и в предыдущем примере.

Set x = Selection

Переменная x связывается с диапазоном ячеек, выделенным с помощью мыши (это может быть как одна ячейка, так и несколько).

Set y = Range(“E2”).CurrentRegion

Переменная y связывается с заполненным диапазоном ячеек, содержащим ячейку E2.

Set y = Cells(2,5).CurrentRegion

То же, что и в предыдущем примере (так как ячейка во второй строке и пятом столбце – это ячейка E2).

Set z = Selection.CurrentRegion

Переменная z связывается с заполненным диапазоном ячеек, содержащим выделенную ячейку.

Пусть переменная связана с некоторым диапазоном ячеек с помощью оператора Set. Тогда ссылка переменная.Cells(i,j).Value – это ссылка на ячейку, расположенную в i-й строке и j-м столбце относительно левого верхнего угла диапазона, с которым связана указанная переменная.

Пример 5.2 – Пусть имеется следующий фрагмент программы:

Set d = Range(“A2:E7”)

Set f = Selection

x = d.Cells(1,3).Value

y = d.Cells(1,8).Value

z = Cells(1,3).Value

k = f.Cells(2,4).Value

В данном случае переменной x будет присвоено значение ячейки C2, так как эта ячейка находится в первой строке и третьем столбце относительно диапазона, связанного с переменной d. Аналогичным образом, переменная y получит значение ячейки H2. Переменная z получит значение ячейки C1, т.е. ячейки из первой строки и третьего столбца рабочего листа, так как ссылка на другой диапазон ячеек (например, на переменную d) в данном случае отсутствует, и ячейка определяется относительно рабочего листа в целом. Переменной k будет присвоено значение ячейки из второй строки и четвертого столбца относительно диапазона, выделенного на рабочем листе с помощью мыши (точнее, левого верхнего угла этого диапазона).

Для диапазона, связанного с переменной, легко определить его размеры, т.е. количество строк и столбцов. Для этого используются стандартные свойства Rows.Count и Columns.Count.

Пусть к фрагменту программы, приведенному в примере 5.2, добавлены следующие строки:

m = d.Rows.Count

n = d.Columns.Count

Переменная m в этом случае получит значение 6 (количество строк в заданном диапазоне), а переменная n – значение 5 (количество столбцов).