7. Манипуляции с рабочими листами
Большинство манипуляций заключаются либо в помещении чего-либо в ячейки рабочего листа, либо в чтении чего-либо из них. Свойство Value объекта Range используется как для чтения, так и для помещения данных в ячейки. Например, оператор
SomeRange.Value=data
помещает данные data в заданный диапазон. Если переменная SomeRange ссылается на более чем одну ячейку, данные помещаются во все ячейки диапазона. Существующие в ячейках данные замещаются без предупреждения. Данные могут быть числовыми, текстовыми, формулой или одной из встроенных функций Excel. Приведем несколько примеров:
Range (”Al”) .Value=123.4 . 56 . Range(”A2″).Value=”Sales Data” Range(”A3″).Value=”=Al/2″ Range(”Bll”).Value=”=sum(Bl:B10)”
Свойство Value также используется для получения значения из ячейки. Если заданный диапазон ссылается на одну ячейку, то свойство Value вернет её данные — число, текст или пустые данные. Если диапазон ссылается более чем на одну ячейку, свойство Value вернет массив, состоящий из данных всех ячеек. Это условие можно проверить, используя функцию isArray, например:
Dim x
X=Range(”SalesTotal“).Value If IsArray(x) Then
‘программа обработки массива Else
‘программа обработки одного значения End If
Возвращаемый массив является двумерным, с типом Variant. Для определения размера массива можно использовать функции Rbound и Lbound (он, естественно, будет иметь размеры диапазона).
Обратите внимание: хотя и может показаться, что свойство Value, возвращаемое пустой ячейкой, должно содержать пустую строку, на самом деле оно содержит специальное значение Empty. Для проверки этого значения используется функция IsEmpty:
If IsEmpty(Range(”Al“).Value) Then
‘ячейка Al — пустая Else
‘ячейка Al — не пустая End If
Если из ячейки вы хотите выбрать формулу, используется свойство Formula. В то время, как свойство Value возвращает результаты формул, саму формулу возвращает свойство Formula. С ячейками, в которых нет формул, свойство Formula работает подобно свойству Value. Рассмотрим следующий фрагмент:
Dim f, v
Range(”Al”).Value=5
Range(”A2″).Value=7
Range (”A3 “) . Value=” =A1+A2″
V=Range(”A3″).Value
F=Range(”A3″).Formula
После выполнения этого фрагмента переменная v будет содержать значение 12, а переменная f — строку “=А1+А2″.