eXcellence-team eXcellence

Ячейки и области

К ячейкам таблицы можно обращаться несколькими способами:

  1. Cells(1,1).value
  2. 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.