Вставка диапазона с транспонированием
Вставка диапазона с транспонированием осуществляется методом 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!