- •Введение в язык макрокоманд vba.
- •Типы данных
- •Описание констант
- •Описание переменных
- •Правила присвоения имен в языке Visual Basic
- •Старшинство операторов
- •Типы макросов.
- •Инструкции присвоения
- •Организация ветвлений. Инструкция If...Then...Else
- •If условие Then [инструкции] [Else инструкции_else]
- •Инструкция Select Case
- •Ввод и вывод информации
- •InputBox(текстовая_строка, заголовок)
- •Циклы в программе
- •Инструкция For...Next
- •Инструкция For Each...Next
- •Инструкция While….Wend
- •Объекты. Свойства. Методы.
- •Объект.Метод Инструкция Set
- •Application.Workbooks("Отчет").Worksheets("Май").Rows(2).Delete
- •Объекты Microsoft Excel
- •Объект Application
- •Объект Workbook. Свойства и Методы.
- •Объект Range
- •Строковые ссылки в стиле а1 или имена диапазонов
- •Числовые индексы строк и колонок
- •Свойства NumberFormat и WrapText
- •Свойство Offset
- •Свойства CurrentRegion и UsedRange
- •Объект Font
- •Объект Interior
Строковые ссылки в стиле а1 или имена диапазонов
Самый распространенный способ получить объект Range — сделать ссылку в стиле А1 или по имени диапазона, как показано в таблице:
|
Чтобы: |
Напишите: |
|
Изменить значение в ячейке А1 на листе Лист1 |
Worksheets("Лист1").Range("A1").Value = 3 |
|
Установить формулу для ячейки В1 на активном листе |
Range("B1").Formula = "=5-10*RAND()" |
|
в ячейку А2 вставляется формула путем измене свойства Formula (формула): |
Range ("А2").Formula = "=СУММ(А1:С1) "
|
|
Присвоить значение всем ячейкам диапазона |
Range("C1:E3").Value = 6 |
|
для свойства Value диапазона ячеек “начальные данные” устанавливается в значение 0,1 (т. е. в ячейках этого диапазона будет записано число 0,1) |
Range ("Начальные_данные").Value =0.1 |
|
Например, установить в ячейки диапазона “dip значение 15 |
Range(“dip”).Value=15
|
|
Очистить содержимое диапазона А1:ЕЗ на активном листе |
Range ("A1", "E3").ClearContents |
|
Установить полужирное начертание шрифта для диапазона myRange (имя на уровне книги) |
Range("myRange").Font.Bold = True
|
|
Присвоить значение всем ячейкам диапазона yourRange (имя на уровне листа) |
Range("Лист1!yourRange").Value = 3 |
|
Присвоить объектной переменной ссылку на диапазон |
Set objRange = Range("myRange") |
|
Например, следующее выражение очищает вторую строку рабочего листа Май в рабочей книге Отчет |
Application.Workbooks("Отчет").Worksheets ("Май").Rows(2).Delete
|
|
переменной процентная_ставка присваивается значение из ячейки А1 текущего рабочего листа |
Процентная_ставка = Range("Al").Value Процентная_ставка = Cells(1,1).Value
|
|
Выбрать диапазон ячеек А10:В12.
|
Range("A10:B12").Select
|
|
Для ячейки B2 задает числовой формат с двумя знаками после десятичной точки |
Range("B2"). NumberFormat = "0.00" |
|
Задает в ячейке В2 многострочный текст
|
Range("B2").Value = "Многострочный текст" Range("B2").WrapText = True |
Помните, что выражения типа Range("C1: ЕЗ").Value = 6 подразумевают обращение к свойству Range активного листа. Если Вы попытаетесь выполнить это выражение в тот момент, когда активен лист диаграммы, произойдет ошибка периода выполнения (с кодом 1004).
Еще одна причина ошибок - использование свойства Range в качестве аргумента другого метода без полного описания объекта Worksheet, к которому оно относится. В следующем примере, который должен был бы сортировать диапазон ячеек на листе Лист1, тоже возникает ошибка периода выполнения 1004:
Sub SortRangeO
Worksheets("Лист1").Range("A1:B10").Sort _
key1:=Range("A1"), order1:=xlDescending
End Sub
Такую ошибку обнаружить труднее, поскольку строка, из которой вызывается метод Sort, сама по себе корректна. Ошибка возникает во второй строке, где указан аргумент key1. Этот код будет работать правильно, если активным листом является Sheetl, но приведет к ошибке при обращении к нему из другого листа или модуля. Во избежание подобных ошибок используйте при задании аргумента свойство Worksheets:
Sub SortRangeO
Worksheets("Лист1").Range("A1:B10").Sort _
key1:=Worksheets("Лист1").Range("A1"), _
order1:=xlDescending
End Sub
