MyTetra Share
Делитесь знаниями!
Ячейки и области
Время создания: 31.07.2019 23:08
Текстовые метки: VBA, range, Cells
Раздел: Разные закладки - VBA - Excel - Cells
Запись: xintrea/mytetra_db_adgaver_new/master/base/1513051801l0k6d6q0rr/text.html на raw.githubusercontent.com

e xcel-team.ru

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



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

  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.


Так же в этом разделе:
 
MyTetra Share v.0.65
Яндекс индекс цитирования