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



Вставка диапазона с транспонированием осуществляется методом PasteSpecial при значении его параметра Transpose равном True. Например, в следующем коде значения из диапазона А1:С2 копируются с транспонированием в диапазон D1:E3:

Range("A1:C2").Copy

Range("D1).PasteSpecial Paste:=xlPasteAll, _

Operation:=xlNone, _

Transpose:=True

Копирование диапазона в буфер обмена как растровое изображение

Метод СopyPicture объекта Range копирует в буфер обмена содержимое указанного диапазона как растровое изображение.

CopyPicture(Appearance, Format)

Здесь:

r Appearance — необязательный параметр, специфицирующий способ копирования диапазона. Допустимыми значениями являются следующие XlPictureAppearance - постоянные: xlPrinter и xlScreen;

r Format — необязательный параметр, задающий формат изображения. Допустимыми значениями являются следующие XlCopyPictureFormat - постоянные: xlPrinter и xlPicture.

Например, в представленном далее коде диапазон А1:С2 копируется в буфер обмена как растровое изображение, затем он вставляется в лист, но уже как графический объект, левый верхний угол которого совпадает с соответствующим углом ячейки С7, после чего это изображение поворачивается на 45° против часовой стрелки.

Range("А1:С2").CopyPicture

Range("C7").Select

ActiveSheet.Paste

Selection.ShapeRange.IncrementRotation -45

Бегущая картинка

В качестве примера копирования в буфер обмена изображения диапазона приведем следующий код (листинг 5.53). В нем в диапазон А1 вставляется текст, у которого задается стиль шрифта. Затем текст поворачивается на угол 45° и содержимое ячейки копируется в буфер обмена, а потом снова вставляется в документ, но уже как рисунок. После чего рисунок начинает передвигаться по рабочему листу.

Листинг 5.53. Бегущая картинка

Sub RunningPicture()

Dim txt As String, angle As Single, st As Single

Dim pic As Object

txt = "Hello, World!"

angle =45

With Application

.ScreenUpdating = False

With Range("A1")

.Value = txt

.Font.Bold = True

.Font.Color = RGB(233, 113, 229)

.Font.Size = 16

.Orientation = angle

.EntireColumn.AutoFit

.Copy

Set pic = ActiveSheet.Pictures.Paste(Link:=False)

.Clear

With pic

.Top = 0

.Left = 0

End With

End With

.CutCopyMode = False

.ScreenUpdating = True

MsgBox "Start!"

With pic

For st = 0 To 100

.Top = st

.Left = st Next

.Delete

End With

End With

Set pic = Nothing

End Sub

Поиск значения в диапазоне

Метод Find объекта Range производит поиск специфицированной информации в указанном диапазоне и возвращает ссылку на первую найденную ячейку, в которой искомая информация найдена. В случае необнаружения искомых данных метод возвращает значение Nothing.

Find(What, After, Lookln, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)

Здесь:

r What — обязательный параметр, задающий искомые данные;

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

r Lookin — необязательный параметр, специфицирующий, где производить поиск. Допустимыми значениями являются следующие постоянные XlFindLookln:

xlComments, xlFormulas и xlValues;

r LookAt — необязательный параметр, указывающий, как надо искать. Допустимыми значениями являются следующие постоянные xlLookAt:

xlWhole и xlPart;

r D Searchorder — необязательный параметр, задающий порядок просмотра диапазона. Допустимыми значениями являются следующие постоянные XlSearchOrder:

xlByRows и xlByColumns;

r SearchDirection — необязательный параметр, определяющий направление просмотра. Допустимыми значениями являются следующие постоянные XlSearchDirection:

 xlNext и xlPrevious;

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

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

r SearchFormat — необязательный параметр, задающий формат поиска.

Например, следующий код производит поиск значения 17 в диапазоне А1:А10. В случае его обнаружения на экране отображается окно с адресом найденной ячейки.

Dim rng As Range

Set rng = Range("A1:A10").Find(What:=17, LookIn:=xlValues)

If Not (rng Is Nothing) Then

MsgBox rng.Address

Else

MsgBox "He найдено значение"

End If

Следующий код (листинг 5.54) производит поиск подстроки "BHV" без учета регистра в диапазоне А1:А10. В случае успешного поиска на экране отображается окно со значением свойства Value обнаруженной ячейки.

Sub DemoFindNoMatchCase()

Dim rng As Range

Set rng - Range("A1:A10").Find(What:="BHV", LookIn:=xlValues, _

LookAt:=xlPart, MatchCase:=False)

If Not (rng Is Nothing) Then

MsgBox rng.Value

Else

MsgBox "He найдено подходящее значение"

End If

End Sub


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

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






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