Ячейки и области
К ячейкам таблицы можно обращаться несколькими способами:
- Cells(1,1).value
- Range("A2").Value = 2
В первом случае ячейки представляются как элементы двухмерного массива Cells,
Во втором используется свойство Range текущей таблицы. Range - это диапазон или область.
В нем может находиться как одна ячейка, так и несколько. Можно написать так:
Range("A2:A5") = 2
В результате ячейкам A2,A3,A4,A5 присвоится значение 2.
Ячейке можно присвоить не только значение, но и формулу, например:
Range("A3") = "=A1+A2"
Получить формулу, присвоенную ячейке, можно так:
s = Range("A3").Formula
А значение, вычисленное по этой формуле, вот так:
x = Range("A3").Value
К ячейкам внутри области можно адресоваться относительно границ этой области. Например:
Sub Ranges()
With Application.Workbooks.Item("RangeTest.xls")
Worksheets("Лист1").Activate
Dim Range1 As Range
Set Range1 = Range("F1:F5")
Range.Range("A1") = 1
End With
End Sub
В результате выполнения этой процедуры значение 1 присвоится ячейке F1, а не A1.
Для областей есть операции объединения и пересечения. Объединение выглядит вот так:
Sub Test()
With ActiveWorkbook
Worksheets("Лист1").Activate
Dim Range1 As Range
Set Range1 = Range("A1:A5, C3:C8 , E3")
Range1.Select
End With
End Sub
Результат:
А вот так - пересечение:
Sub Test()
With ActiveWorkbook
Worksheets("Лист1").Activate
Dim Range1 As Range
Set Range1 = Range("A1:A8 A8:D8")
Range1.Value = "test"
End With
End Sub
В этом примере значение test присвоится только ячейке A8, так как только она находится на пересечении областей A1:A8 и A8:D8.