VBA Excel
242 subscribers
88 photos
23 links
VBA Excel для начинающих. Справка по VBA Excel. Visual Basic for Applications. Справочник. Самоучитель.
Download Telegram
🔥 Свойство Column объекта Range

Свойство Range.Column возвращает номер первого столбца указанного диапазона. Это свойство удобно для определения положения ячеек или работы с динамическими диапазонами.

📌 Примеры:

1️⃣ Получить номер столбца для одной ячейки:
MsgBox Range("D3").Column  


🔹 Выведет 4, так как D – это четвёртый столбец.

2️⃣ Получить номер первого столбца диапазона:
MsgBox Range("C2:E5").Column  


🔹 Выведет 3, так как C – это третий столбец.

3️⃣ Использовать Column в цикле:
Dim rng As Range  
For Each rng In Range("B1:E1")
rng.Value = "Столбец " & rng.Column
Next rng


🔹 В B1:E1 появятся значения Столбец 2, Столбец 3 и так далее.

💡 Если диапазон включает несколько столбцов, Column вернёт номер только первого столбца.

#VBA #ExcelVBA #Range #Column #Столбец
🔥 Свойство Columns объекта Range

Свойство Range.Columns возвращает поддиапазон, содержащий столбцы внутри указанного диапазона. С его помощью можно обращаться к отдельным столбцам, изменять их свойства или выполнять циклы по столбцам.

📌 Примеры:

1️⃣ Выделить второй столбец в диапазоне A1:D5:
Range("A1:D5").Columns(2).Select  


🔹 Выделит B1:B5, так как Columns(2) означает второй столбец внутри диапазона.

2️⃣ Изменить ширину всех столбцов в диапазоне:
Range("A1:D5").Columns.ColumnWidth = 15  


🔹 Установит ширину столбцов в 15 пикселей.

3️⃣ Заполнить столбцы номерами в первой строке:
Dim c As Range  
For Each c In Range("A1:D1").Columns
c.Value = c.Column
Next c


🔹 В A1:D1 появятся числа 1, 2, 3, 4, соответствующие номерам столбцов.

💡 Важно:
✔️ Columns.Count покажет количество столбцов в диапазоне.
✔️ Columns(1) – это первый столбец внутри диапазона, а не в листе!

#VBA #ExcelVBA #Range #Columns #Столбцы
🔥 Свойство Font объекта Range

Свойство Range.Font позволяет изменять шрифт, цвет, размер и другие текстовые атрибуты в ячейках. Это свойство полезно для выделения данных, стилизации заголовков и форматирования отчётов.

📌 Примеры:

1️⃣ Изменить шрифт и размер текста в A1:
With Range("A1").Font  
.Name = "Arial"
.Size = 14
End With


🔹 Устанавливает шрифт Arial и размер 14.

2️⃣ Сделать текст жирным и красным в B2:
With Range("B2").Font  
.Bold = True
.Color = RGB(255, 0, 0)
End With


🔹 Текст станет жирным и красным.

3️⃣ Применить курсив и подчеркнуть текст в C3:
With Range("C3").Font  
.Italic = True
.Underline = xlUnderlineStyleSingle
End With


🔹 Устанавливает курсив и подчёркивание.

4️⃣ Изменить цвет шрифта в строках с нечётными номерами:
Dim r As Range  
For Each r In Range("A1:A10").Rows
If r.Row Mod 2 = 1 Then
r.Font.Color = RGB(0, 0, 255) ' Синий
End If
Next r


🔹 Закрашивает шрифт в нечётных строках в синий цвет.

💡 Font можно комбинировать с Interior, Borders и другими свойствами для создания красивого форматирования.

#VBA #ExcelVBA #Range #Font #Шрифт
🔥 Свойство NumberFormat объекта Range

Свойство Range.NumberFormat позволяет изменять формат отображения данных в ячейках. Оно используется для задания числовых форматов, дат, процентов и пользовательских представлений данных.

📌 Примеры:

1️⃣ Установить формат числа с двумя знаками после запятой:
Range("A1").NumberFormat = "0.00"  


🔹 Число 123.456 в A1 отобразится как 123.46.

2️⃣ Применить денежный формат с символом валюты:
Range("B2").NumberFormat = "#,##0.00 ₽"  


🔹 Число 1000 отобразится как 1 000,00 ₽.

3️⃣ Отобразить дату в формате ДД.ММ.ГГГГ:
Range("C3").NumberFormat = "DD.MM.YYYY"  


🔹 Если в C3 находится дата 01.01.2025, она будет отображаться как 01.01.2025.

4️⃣ Применить процентный формат:
Range("D4").NumberFormat = "0.00%"  


🔹 Число 0.25 в D4 отобразится как 25.00%.

5️⃣ Использовать пользовательский формат для телефонных номеров:
Range("E5").NumberFormat = "+7 (###) ###-##-##"  


🔹 Число 9876543210 отобразится как +7 (987) 654-32-10.

💡 NumberFormat влияет только на отображение данных, но не изменяет их фактическое значение!

#VBA #ExcelVBA #Range #NumberFormat #Формат
🔥 Свойство Borders объекта Range

Свойство Range.Borders позволяет управлять границами ячеек, изменять их стиль, толщину и цвет. Это свойство полезно для оформления таблиц, выделения важных данных и улучшения визуального восприятия.

📌 Примеры:

1️⃣ Установить границы для диапазона A1:D5:
Range("A1:D5").Borders.LineStyle = xlContinuous  


🔹 Добавит сплошные границы ко всем сторонам диапазона.

2️⃣ Сделать жирные границы вокруг ячеек диапазона B2:B6:
With Range("B2:B6").Borders  
.Weight = xlThick
.Color = RGB(255, 0, 0) ' Красный цвет
End With


🔹 Установит жирные красные границы.

3️⃣ Установить пунктирную нижнюю границу для C3:
Range("C3").Borders(xlEdgeBottom).LineStyle = xlDash  


🔹 Добавит пунктирную границу снизу.

4️⃣ Убрать все границы в A1:D5:
Range("A1:D5").Borders.LineStyle = xlNone  


🔹 Полностью очистит границы.

💡 Основные константы для работы с границами:
✔️ xlEdgeLeft, xlEdgeRight, xlEdgeTop, xlEdgeBottom – границы по краям.
✔️ xlInsideVertical, xlInsideHorizontal – внутренние границы диапазона.
✔️ xlThin, xlMedium, xlThick – толщина линий.
✔️ xlContinuous, xlDash, xlDot, xlDouble – стили линий.

#VBA #ExcelVBA #Range #Borders #Граница #Границы
👍1
🔥 Свойство Merge объекта Range

Свойство Range.Merge позволяет объединять ячейки в диапазоне в одну большую ячейку. Это свойство полезно для создания заголовков, объединённых ячеек для оформления таблиц или отчётов.

📌 Примеры:

1️⃣ Объединить ячейки от A1 до C1:
Range("A1:C1").Merge  


🔹 Ячейки A1, B1, и C1 будут объединены в одну ячейку.

2️⃣ Проверить, объединены ли ячейки:
If Range("A1:C1").MergeCells Then  
MsgBox "Ячейки объединены!"
Else
MsgBox "Ячейки не объединены!"
End If


🔹 Проверит, объединены ли ячейки в диапазоне, и выведет сообщение.

3️⃣ Разобрать объединённые ячейки:
Range("A1:C1").UnMerge  


🔹 Разделяет ячейки, если они были объединены.

4️⃣ Объединить несколько строк в одной колонке:
Range("A1:A3").Merge  


🔹 Ячейки A1, A2 и A3 будут объединены в одну ячейку.

💡 Важно помнить, что объединение ячеек работает только с диапазонами прямоугольной формы (не с произвольно расположенными ячейками).

#VBA #ExcelVBA #Range #Merge #UnMerge #Объединение
🔥 Свойство Offset объекта Range

Свойство Range.Offset позволяет перемещать диапазон относительно указанной ячейки на заданное количество строк и столбцов. Это свойство полезно, когда нужно динамически манипулировать ячейками или диапазонами без явного указания их адресов.

📌 Примеры:

1️⃣ Переместить ссылку на ячейку на 2 строки вниз и 1 столбец вправо от A1:
Range("A1").Offset(2, 1).Select  


🔹 Это выберет ячейку B3, так как смещение на 2 строки вниз и 1 столбец вправо от A1 даёт B3.

2️⃣ Изменить значение ячейки, которая находится на 3 строки вверх и 2 столбца влево от D5:
Range("D5").Offset(-3, -2).Value = "Hello"  


🔹 В ячейке B2 будет установлено значение "Hello", так как смещение на -3 строки вверх и -2 столбца влево даёт B2.

3️⃣ Использование Offset для работы с диапазонами:
Range("A1").Offset(1, 0).Resize(5, 1).Value = "Text"  


🔹 Устанавливает текст "Text" в ячейки A2:A6, смещая на 1 строку вниз от A1 и сужая диапазон до 5 строк.

4️⃣ Создание цикла для перебора ячеек в столбце с динамическим смещением:
Dim i As Integer  
For i = 1 To 5
Range("A1").Offset(i, 0).Value = "Row " & i
Next i


🔹 В столбце A появится текст "Row 1", "Row 2", и так далее до "Row 5".

💡 Важно:
Offset возвращает новый диапазон, поэтому его можно использовать для получения или изменения данных в смещённых ячейках.

#VBA #ExcelVBA #Range #Offset
🔥 Свойство Resize объекта Range

Свойство Range.Resize позволяет изменять размер диапазона, расширяя или сужая его на заданное количество строк и столбцов. Это свойство полезно для работы с динамическими диапазонами, когда размер диапазона может изменяться в зависимости от условий.

📌 Примеры:

1️⃣ Изменить размер диапазона A1 на 3 строки вниз и 2 столбца вправо:
Range("A1").Resize(3, 2).Select  


🔹 Этот код выделит диапазон A1:B3, так как он расширяет A1 на 3 строки вниз и 2 столбца вправо.

2️⃣ Изменить размер диапазона и записать данные в новые ячейки:
Range("B2").Resize(2, 3).Value = "Text"  


🔹 В диапазоне B2:D3 будут установлены значения "Text".

3️⃣ Использование Resize с циклом для автоматического создания диапазонов:
Dim i As Integer  
For i = 1 To 5
Range("A1").Resize(i, 1).Value = "Row " & i
Next i


🔹 В столбце A будут созданы значения от Row 1 до Row 5, с изменением диапазона на каждую итерацию.

4️⃣ Изменить размер диапазона на основе текущего размера диапазона:
Range("B2:D4").Resize(3, 2).Select  


🔹 Этот код выделит диапазон B2:C4, так как начальный диапазон B2:D4 будет уменьшен на 1 столбец (до 2 столбцов).

💡 Важно:
Resize не изменяет сам диапазон, а возвращает новый диапазон с другим размером. Это свойство полезно для работы с диапазонами, которые нужно изменять динамически.

#VBA #ExcelVBA #Range #Resize
🔥 Свойство End объекта Range

Свойство Range.End используется для нахождения последней ячейки в диапазоне, которая содержит данные, в определённом направлении. Это свойство полезно для работы с динамическими диапазонами, где размеры данных могут изменяться.

📌 Примеры:

1️⃣ Найти последнюю заполненную ячейку в столбце:
Range("A1").End(xlDown).Select  


🔹 Выберет последнюю заполненную ячейку в столбце A начиная с A1. Это аналогично нажатию клавиши Ctrl + ↓ в Excel.

2️⃣ Переместиться в последнюю заполненную строку в диапазоне:
Range("A1").End(xlDown).Value = "Last row"  


🔹 В последней заполненной ячейке столбца A будет установлено значение "Last row".

3️⃣ Использовать End для нахождения последнего столбца с данными в строке:
Range("A1").End(xlToRight).Select  


🔹 Выберет последнюю заполненную ячейку в строке 1, начиная с A1. Это аналогично нажатию клавиши Ctrl + →.

4️⃣ Использование End для поиска границ данных в таблице:
Dim lastCell As Range  
Set lastCell = Range("A1").End(xlDown).End(xlToRight)
lastCell = "Последняя ячейка таблицы"


🔹 Переместит курсор в последнюю заполненную ячейку таблицы, которая находится в правом нижнем углу.

💡 Важно:
✔️ xlDown — ищет внизу диапазона.
✔️ xlUp — ищет вверх.
✔️ xlToRight — ищет вправо.
✔️ xlToLeft — ищет влево.

#VBA #ExcelVBA #Range #End
🔥 Свойство CurrentRegion объекта Range

Свойство Range.CurrentRegion позволяет получить диапазон, который включает все смежные заполненные ячейки, начиная с указанной ячейки. Это свойство полезно для работы с таблицами данных, чтобы автоматически определять область с данными.

📌 Примеры:

1️⃣ Получить диапазон данных, начиная с ячейки A1:
Range("A1").CurrentRegion.Select  


🔹 Выделит весь диапазон, включающий ячейки вокруг A1, которые содержат данные, и заканчивающийся на первой пустой строке или столбце.

2️⃣ Скопировать все данные в текущей области:
Range("A1").CurrentRegion.Copy  


🔹 Копирует все данные в области, начиная с A1, и заканчивающейся первой пустой строкой и столбцом.

3️⃣ Записать значение в первую ячейку следующего столбца за текущей областью:
Range("A1").CurrentRegion.Cells(1, Range("A1").CurrentRegion.Columns.Count + 1).Value = "Новый столбец"  


🔹 Запишет значение "Новый столбец" в первую ячейку нового столбца, который будет добавлен в текущую область.

4️⃣ Получить количество строк и столбцов в текущей области:
Dim rowsCount As Long  
Dim colsCount As Long
rowsCount = Range("A1").CurrentRegion.Rows.Count
colsCount = Range("A1").CurrentRegion.Columns.Count
MsgBox "Rows: " & rowsCount & ", Columns: " & colsCount


🔹 Покажет количество строк и столбцов в текущей области данных.

💡 Важно:
✔️ CurrentRegion включает все смежные ячейки, содержащие данные, и прекращает область перед первой пустой строкой и перед первым пустым столбцом.
✔️ Свойство CurrentRegion очень полезно для работы с таблицами или базами данных в Excel.

#VBA #ExcelVBA #Range #CurrentRegion
🔥 Свойство EntireRow объекта Range

Свойство Range.EntireRow позволяет работать с целыми строками, которые содержат указанную ячейку. Это свойство полезно для выполнения операций, таких как форматирование или удаление целых строк.

📌 Примеры:

1️⃣ Выбрать всю строку, содержащую ячейку A1:
Range("A1").EntireRow.Select  


🔹 Выделит всю строку, в которой находится ячейка A1.

2️⃣ Изменить цвет фона всей строки, содержащей B2:
Range("B2").EntireRow.Interior.Color = RGB(255, 255, 0)  


🔹 Сделает фон всей строки, в которой находится B2, жёлтым.

3️⃣ Удалить всю строку, содержащую ячейку C5:
Range("C5").EntireRow.Delete  


🔹 Удалит строку, которая содержит ячейку C5.

4️⃣ Добавить текст в каждую ячейку всей строки, в которой находится D3:
Range("D3").EntireRow.Value = "Новый текст"  


🔹 Заменит все значения в строке, содержащей D3, на "Новый текст".

5️⃣ Использование EntireRow для копирования всей строки:
Range("A1").EntireRow.Copy Destination:=Range("A10")  


🔹 Копирует всю строку, в которой находится A1, и вставляет её в строку A10.

💡 Важно:
✔️ EntireRow всегда ссылается на строку, содержащую ячейку.
✔️ Использование этого свойства помогает легко манипулировать целыми строками, например, при форматировании или удалении.

#VBA #ExcelVBA #Range #EntireRow
🔥 Свойство EntireColumn объекта Range

Свойство Range.EntireColumn позволяет работать с целыми столбцами, содержащими указанную ячейку. Это свойство полезно для операций, таких как форматирование или удаление целых столбцов.

📌 Примеры:

1️⃣ Выбрать весь столбец, содержащий ячейку B2:
Range("B2").EntireColumn.Select  


🔹 Выделит весь столбец, в котором находится ячейка B2.

2️⃣ Изменить цвет фона всего столбца, содержащего C3:
Range("C3").EntireColumn.Interior.Color = RGB(0, 255, 0)  


🔹 Сделает фон всего столбца, содержащего C3, зелёным.

3️⃣ Удалить весь столбец, содержащий ячейку D4:
Range("D4").EntireColumn.Delete  


🔹 Удалит столбец, в котором находится ячейка D4.

4️⃣ Записать значение в каждую ячейку всего столбца, содержащего E5:
Range("E5").EntireColumn.Value = "Новое значение"  


🔹 Заменит все значения в столбце, содержащем E5, на "Новое значение".

5️⃣ Использование EntireColumn для копирования всего столбца:
Range("A1").EntireColumn.Copy Destination:=Range("F1")  


🔹 Копирует весь столбец, в котором находится ячейка A1, и вставляет его в столбец F.

💡 Важно:
✔️ EntireColumn ссылается на весь столбец, в котором находится ячейка.
✔️ Это свойство полезно при выполнении операций с целыми столбцами, таких как форматирование, удаление или копирование данных.

#VBA #ExcelVBA #Range #EntireColumn
🔥 Свойство Cells объекта Range

Свойство Range.Cells позволяет обращаться к отдельным ячейкам в пределах указанного диапазона. Это свойство удобно для работы с диапазонами, где нужно манипулировать ячейками по строкам и столбцам.

📌 Примеры:

1️⃣ Ссылка на ячейку в первой строке и втором столбце диапазона A1:D5:
Range("A1:D5").Cells(1, 2).Value = "Hello"  


🔹 Установит значение "Hello" в ячейку B1, так как это первая строка и второй столбец в указанном диапазоне.

2️⃣ Получить значение из ячейки в пятой строке и третьем столбце диапазона A1:D10:
Dim value As Variant  
value = Range("A1:D10").Cells(5, 3).Value
MsgBox value


🔹 Печатает значение ячейки, находящейся в строке 5 и столбце 3 в диапазоне A1:D10.

3️⃣ Изменить значение в ячейке на пересечении последней строки и последнего столбца диапазона:
Range("A1:D5").Cells(Range("A1:D5").Rows.Count, Range("A1:D5").Columns.Count).Value = "Последняя ячейка"  


🔹 Установит значение "Последняя ячейка" в ячейку, которая находится в правом нижнем углу диапазона.

💡 Важно:
✔️ Cells индексирует ячейки с 1 (единицы), как строки и столбцы, так что Cells(1,1) ссылается на ячейку в верхнем левом углу диапазона.

#VBA #ExcelVBA #Range #Cells
🔥 Свойство Value2 объекта Range

Свойство Range.Value2 работает аналогично свойству Value, но оно не выполняет округление для чисел с плавающей запятой и дат. Это свойство полезно для работы с точными значениями, особенно при манипуляции с датами и временными значениями.

📌 Примеры:

1️⃣ Установить точное значение в ячейку с использованием Value2:
Редактировать
Range("A1").Value2 = 12345.6789  


🔹 Установит значение 12345.6789 в ячейку A1, не округляя число.

2️⃣ Прочитать точное значение из ячейки с датой:
Dim myDate As Date  
myDate = Range("B1").Value2
MsgBox myDate


🔹 Прочитает точное значение даты или времени из ячейки B1 и выведет его в сообщении.

3️⃣ Пример использования с датами:
Range("C1").Value2 = DateSerial(2025, 1, 1)  


🔹 Установит в ячейку C1 точную дату 1 января 2025 года, не округляя её.

💡 Важно:
✔️ Value2 может быть полезно для работы с датами и числами, где округление не требуется.
✔️ Это свойство особенно подходит, когда нужно работать с данными, в которых важна точность.

#VBA #ExcelVBA #Range #Value2
🔥 Свойство Width объекта Range

Свойство Range.Width позволяет узнать ширину диапазона в пунктах. Это свойство полезно для получения точных размеров диапазонов и манипуляции с шириной столбцов в Excel.

📌 Примеры:

1️⃣ Получить ширину диапазона A1:B2:
Dim rngWidth As Double  
rngWidth = Range("A1:B2").Width
MsgBox rngWidth


🔹 Выведет в сообщении ширину диапазона A1:B2 в пунктах.

2️⃣ Использовать Width для изменения ширины столбца на основе размера диапазона:
Range("A1:B2").ColumnWidth = Range("A1:B2").Width / 6


🔹 Установит ширину столбцов A и B так, чтобы она приблизительно соответствовала ширине диапазона A1:B2.

💡 Важно:
ColumnWidth и Width измеряются в разных единицах (поэтому результат мы делим на 6):

ColumnWidth измеряется в символах, которые могут быть отображены в текущем шрифте ячейки. Это не является точной физической единицей измерения, но оно соответствует ширине ячейки в количестве стандартных символов, которые могут быть вписаны в ячейку с учетом шрифта и размера шрифта.

Width измеряется в пунктах (points), что является стандартной единицей измерения в типографике. 1 пункт = 1/72 дюйма. Это более точная единица, и она напрямую связана с физической шириной диапазона в Excel.

3️⃣ Сравнение ширины двух ячеек:
If Range("A1").Width > Range("B1").Width Then
MsgBox "Ячейка A1 шире!"
ElseIf Range("A1").Width < Range("B1").Width Then
MsgBox "Ячейка B1 шире!"
Else
MsgBox "Ячейки одинаковой ширины!"
End If


🔹 Сравнит ширину ячеек A1 и B1 и выведет соответствующее сообщение.

💡 Важно:
✔️ Width возвращает ширину диапазона в пунктах, что важно при точной настройке размеров ячеек.
✔️ Можно использовать это свойство, чтобы динамически регулировать размеры столбцов или диапазонов.

#VBA #ExcelVBA #Range #Width
🔥 Свойство Height объекта Range

Свойство Range.Height позволяет получить высоту диапазона в пунктах. Это свойство полезно для работы с точными размерами строк в Excel и для динамического изменения размеров ячеек.

📌 Примеры:

1️⃣ Получить высоту диапазона A1:B2:
Dim rngHeight As Double  
rngHeight = Range("A1:B2").Height
MsgBox rngHeight


🔹 Выведет в сообщении высоту диапазона A1:B2 в пунктах.

2️⃣ Использование Height для изменения высоты строки на основе размера диапазона:
Range("A1:B2").RowHeight = Range("A1:B2").Height / 2  


🔹 Установит высоту строки так, чтобы она соответствовала половине высоты диапазона A1:B2.

3️⃣ Сравнение высоты двух ячеек:
If Range("A1").Height > Range("A2").Height Then
MsgBox "Ячейка A1 выше!"
ElseIf Range("A1").Height < Range("A2").Height Then
MsgBox "Ячейка A2 выше!"
Else
MsgBox "Ячейки одинаковой высоты!"
End If


🔹 Сравнит высоту ячеек A1 и A2 и выведет соответствующее сообщение.

💡 Важно:
✔️ Height возвращает высоту диапазона в пунктах, что позволяет точно контролировать размеры ячеек.
✔️ Это свойство особенно полезно для работы с высотой строк и точной настройкой размеров ячеек.

#VBA #ExcelVBA #Range #Height
🔥 Свойство HasFormula объекта Range

Свойство Range.HasFormula позволяет определить, содержит ли ячейка формулу. Это свойство удобно для проверки и обработки ячеек с вычисляемыми значениями. Оно возвращает True, если в ячейке есть формула, и False, если формулы нет.

📌 Примеры:

1️⃣ Проверить, есть ли формула в ячейке A1:
If Range("A1").HasFormula Then  
MsgBox "Ячейка A1 содержит формулу!"
Else
MsgBox "В ячейке A1 нет формулы."
End If


🔹 Выведет сообщение о наличии или отсутствии формулы в A1.

2️⃣ Выделить все ячейки с формулами в диапазоне A1:D10:
Dim cell As Range  
For Each cell In Range("A1:D10")
If cell.HasFormula Then
cell.Interior.Color = RGB(255, 255, 0) ' Желтый цвет
End If
Next cell


🔹 Закрасит в жёлтый цвет все ячейки с формулами в диапазоне A1:D10.

3️⃣ Очистить все формулы в диапазоне B1:B10, оставив только их значения:
Range("B1:B10").Value = Range("B1:B10").Value  


🔹 Удалит формулы из ячеек, значения ячеек будут сохранены.

💡 Важно:
✔️ HasFormula — это логическое свойство, возвращающее True или False.
✔️ Полезно при проверке и обработке данных, где нужно учитывать наличие вычислений.
✔️ Не даёт информации о содержимом формулы, только факт её наличия.

#VBA #ExcelVBA #Range #HasFormula
🔥 Свойство Hidden объекта Range

Свойство Range.Hidden позволяет скрывать или отображать строки и столбцы в Excel. Это свойство особенно полезно при автоматизации отчетов и создании динамических таблиц.

📌 Примеры:

1️⃣ Скрыть строку, содержащую ячейку A1:
Range("A1").EntireRow.Hidden = True  


🔹 Скрывает всю строку, в которой находится A1.

2️⃣ Скрыть столбец, содержащий ячейку B2:
Range("B2").EntireColumn.Hidden = True  


🔹 Скрывает весь столбец, в котором находится B2.

3️⃣ Показать скрытую строку 5:
Rows(5).Hidden = False  


🔹 Делает строку 5 видимой.

4️⃣ Переключить видимость столбца C:
Columns("C").Hidden = Not Columns("C").Hidden  


🔹 Если столбец C был скрыт, он станет видимым, и наоборот.

5️⃣ Скрыть все строки в диапазоне A1:A10, содержащие отрицательные значения:
Dim cell As Range  
For Each cell In Range("A1:A10")
If cell.Value < 0 Then
cell.EntireRow.Hidden = True
End If
Next cell


🔹 Скрывает все строки в диапазоне A1:A10, где в ячейках находятся отрицательные числа.

💡 Важно:
✔️ Hidden можно использовать как для строк (EntireRow), так и для столбцов (EntireColumn).
✔️ Скрытие не удаляет данные, а просто делает их невидимыми.
✔️ Полезно при создании динамических отчетов и фильтрации данных.

#VBA #ExcelVBA #Range #Hidden
Типы данных в VBA Excel

Встроенные типы данных VBA Excel:

#DataType #DataTypes #ТипДанных #ТипыДанных
*Резервируется память в байтах на каждую переменную соответствующего типа.

Тип данных Variant может принимать специальные значения: Empty, Error, Nothing и Null.

Кроме встроенных типов данных VBA Excel позволяет использовать пользовательские типы, создаваемые с помощью оператора Type. Диапазон значений пользовательского типа данных определяется встроенными типами, из которых он состоит.
🔥 Массивы в VBA Excel

Массивы в VBA — это структуры данных, которые позволяют хранить несколько значений под одним именем. Они удобны для работы с большими объемами данных, поскольку позволяют быстро обрабатывать их в циклах.

📌 Объявление массивов

1️⃣ Одномерный (фиксированный) массив с фиксированным числом элементов
Dim arr(1 To 5) As Integer  
arr(1) = 10
arr(2) = 20
MsgBox arr(1) ' Выведет 10


🔹 В этом массиве 5 элементов, доступных по индексам 1–5.

2️⃣ Динамический массив (размер можно менять в процессе работы)
Dim arr() As Integer  
ReDim arr(1 To 10)
arr(1) = 100


🔹 Используем ReDim, чтобы задать размер массива во время выполнения кода.

3️⃣ Многомерный массив
Dim matrix(1 To 3, 1 To 3) As Integer  
matrix(1, 1) = 5
matrix(2, 3) = 10
MsgBox matrix(2, 3) ' Выведет 10


🔹 Это массив 3×3, где обозначение каждого элемента соответствует формуле - matrix(строка, столбец).

#VBA #ExcelVBA #Array #Массив #Массивы