Вставка и удаление комментариев в диапазон



Метод AddComment объекта Range вставляет комментарий в диапазон, а метод ClearComments его удаляет. Например, следующий код (листинг 5.51) сканирует диапазон А1:А100 и в случае, если в очередную ячейку входит строка "bhv", сначала очищает эту ячейку от комментариев, а затем вставляет в нее комментарий "Книга издательства БХВ-Петербург".

Листинг 5.51. Вставка и удаление комментариев в диапазон

Sub DemoComments()

Dim с As Range

For Each с In Range("A1:A100")

If c.Value Like "*BHV*" Then

с.CiearComments

c.AddComment "Книга издательства БХВ-Петербург"

End If

Next

End Sub

Заполнение диапазона прогрессией

Метод DataSeries объекта Range заполняет диапазон профессией. Метод DataSeries программирует выполнение команды Правка►Заполнить►Прогрессия.

DataSeries (RowCol, Type, Date, Step, Stop, Trend)

Здесь:

r RowCol — необязательный параметр, определяющий направление, в котором создается профессия. Допустимые значения: xlRows (вдоль строк), xlColumns (вдоль столбцов). Если параметр опущен, то для задания направления используются размеры данного диапазона;

r Type — необязательный параметр, специфицирующий тип прогрессии. Допустимыми значениями являются следующие постоянные XlDataSeriesType: xlDataSeriesLinear (линейная, используется по умолчанию), xlGrowth (геометрическая), xlChronoiogical (даты), xlAutoFill (автозаполнение);

r Date — необязательный параметр, задающий тип последовательности дат, если параметр туре принимает значение xlChronoiogical. Допустимыми значениями являются следующие постоянные XlDataSeriesDate: xlDay (дни, используется по умолчанию), xlWeekday (дни недели), xlMonth (месяцы), xlYear (годы);

r Step — необязательный параметр, определяющий шаг изменения прогрессии. По умолчанию полагается равным 1;

r Stop — необязательный параметр, задающий предельное значение прогрессии. По умолчанию строится прогрессия во всем выделенном диапазоне;

r Trend — необязательный параметр, принимает логические значения. Если значение параметра равно True, то создается арифметическая или геометрическая прогрессия, а если False, то создается список.

Например, следующие инструкции выведут членов арифметической профессии, шаг которой равен 2, 0 является ее первым членом, а 10 — последним, т. е. в диапазон А1:А6 будут выведены следующие числа: 0, 2, 4, 6, 8 и 10 (рис. 5.6).

Range("A1").Value = 0

Range("A1").DataSeries Rowcol:=xlColumns, _

Type:=xlDataSeriesLinear, _

Step:=2, _

Stop:=10


 

Рис. 5.6. Прогрессии

Следующие инструкции введут в диапазон В1:В5 членов геомефической профессии с коэффициентом — 3, первый член которой — 1. Таким образом, в диапазон В1:В5будут выведены значения 1, 3, 9, 27 и 81 (см. рис. 5.6).

Range("B1").Value = 1

Range("B1:В5").DataSeries Rowcol:=xlColumns, _

Type:=xlGrowth, _

Step:=3

Следующие инструкции выведут в диапазон С1:С4последовательность дат, члены которой отличаются ровно на месяц, т.е. значения 01.01.2005, 01.02.2005, 01.03.2005, 01.04.2005 (см. рис. 5.6).

Range("CI").Value = "1/01/05"

Range("C1:C4").DataSeries Rowcol:=xlColumns, _

Type:=xlChronological, _

Date:=xlMonth

Автозаполнение ячеек диапазона

Элементами последовательности

Метод AutoFill объекта Range производит автозаполнение ячеек диапазона элементами последовательности. Метод AutoFill отличается от метода DataSeries тем, что явно указывается диапазон, в котором будет располагаться прогрессия. Метод AutoFill программирует копирование данных в диапазон, когда пользователь располагает указатель мыши на маркере заполнения исходного диапазона и перемещает его вниз и вправо, выделяя весь диапазон, в который переносятся исходные данные.

expression .AutoFill(Destination , Type )

Здесь:

r expression — обязательный элемент, который задает диапазон, с которого начинается заполнение;

r Destination — обязательный параметр, определяющий диапазон, который заполняется. Этот диапазон должен содержать диапазон, указанный в expression ;

r Type — необязательный параметр, указывающий тип заполнения. Допустимыми значениями являются следующие постоянные xiAutoFillType: xlFillDefault, xlFillSeries, xlFillCopy, xlFillFormats, xlFillValues, xlFillDays, xlFillWeekdays, xlFillMonths, xlFillYears, xlLinearTrend, xlGrowtnTrend. По умолчанию используется тот тип заполнения, который наиболее подходит к данным из диапазона, указанного в expression .

Например, следующие инструкции заполняют диапазон А1:А5членами арифметической профессии, причем ее первыми двумя членами являются 1 и 3, т. е. те значения, которые предварительно были введены в ячейки А1 и А2 (рис. 5.7).

Range("A1").Value = 1

Range("A2").Value = 3

 

Range("A1:A2").AutoFill Destination:=Range("A1:A5"), Type:=xlLinearTrend

Рис. 5.7. Последовательности

Следующие инструкции выводят члены геометрической прогрессии с теми же двумя начальными значениями в диапазон В1:В5 (см. рис. 5.7).

Range("B1").Value = 1

Range("B2").Value = 3

Range("B1:B2").AutoFill Destination:=Range("B1:B5"), Type:=xlGrowthTrend

Следующие инструкции выведут в диапазон С1:СЗ последовательность значений лето 2000, лето 2000 и Лето 2003 с шагом 1, определенным по умолчанию методом AutoFill (см. рис. 5.7).

Range("C1").Value = "Лето 2000"

Range("C1").AutoFill Destination:=Range("C1:C3"), Type:=xlFillSeries

Следующие две инструкции выводят в диапазон D1:D3 первые три члена списка — имена месяцев, начиная с январь (см. рис. 5.7).

Range("Dl").Value = "Январь"

Range("Dl").AutoFill Destination:=Range("D1:D3"), Type:=xlFillSeries

А последние две инструкции копируют содержимое ячейки Е1 на все ячейки диапазона Е1:ЕЗ (см. рис. 5.7).

Range("E1").Value = "Январь"

Range("E1").AutoFill Destination:=Range("E1:E3"), Type:=xlCopy

Табуляция функции

Метод AutoFill позволяет решить задачу табуляции функции, т. е. вывода ее значений при изменении значения ее параметра. Например, требуется найти значения функции sin(x) при значении параметра х , изменяющемся от 0 до 2 с шагом 0,2. Это можно сделать следующим образом (листинг 5.52). Сначала в ячейку А1 ввести первый член арифметической последовательности требуемых значений параметра, а затем с помощью метода DataSeries построить всю последовательность вдоль столбца А. Потом определить как текущий диапазон с этими значениями. Диапазон, в котором расположатся соответствующие значению функции, разместится в столбце В, и его можно найти при помощи свойства Offset. Далее остается самая малость. В ячейку В1 ввести формулу =SIN(A1) для нахождения значения функции при значении параметра, равного 0, а затем скопировать данную формулу на весь диапазон, отводимый под искомые значения функции (рис. 5.8).

Sub DemoDataSeries()

Range("Al").Value = 0

Range("Al").DataSeries Rowcol:=xlColumns, _

Type:=xlDataSeriesLinear, _

Step:=0.2, _

Stop:=2

Dim rgn As Range

Set rgn = Range("A1").CurrentRegion

rgn.NumberFormat = "0.0"

Set rgn = rgn.Offset(0, 1)

Range("B1").Formula = "=SIN(A1)"

Range("B1").AutoFill Destination:=rgn, Type:=xlCopy

rgn.NumberFormat = "0.0000"

 

End Sub

Рис. 5.8. Табуляция функции


Дата добавления: 2019-02-12; просмотров: 165; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!