Excel VBA Добавление изображения с жесткого диска в мой CenterHeader на моих рабочих листах (1) - PullRequest
0 голосов
/ 16 октября 2018

У меня проблемы с работой моего кода VBA для заголовка центра в верхней части страницы в Excel.Я хочу, чтобы он загружал изображение (по моему выбору) в заголовок.

Это работает для ячейки "C2", для которой в настоящее время работает мой код, но я не могу понять, как заставить его поместитькартинка в заголовок вместо ячейки "C2".

Мой код выглядит следующим образом (и он выбирает нужную картинку, которую я хочу добавить, сравнивая имена и пути на жестком диске с выпадающим списком.Скрипт / код / ​​макрос автоматически активируется при изменении типа в раскрывающемся списке):

Private Sub Worksheet_Change(ByVal Target As Range)

Dim myPict As Picture
Dim PictureLoc As String

If Target.Address = Range("A2").Address Then

ActiveSheet.Pictures.Delete

PictureLoc = "K:\MyPictures\" & Range("A2").Value & ".png"

With Range("C2")
    Set myPict = ActiveSheet.Pictures.Insert(PictureLoc)
    myPict.Top = .Top
    myPict.Left = .Left
    myPict.ShapeRange.LockAspectRatio = msoTrue
    myPict.ShapeRange.Width = 157
    myPict.ShapeRange.Height = 18
    myPict.Placement = xlMoveAndSize
End With

End If

End Sub

Есть предложения?

Спасибо

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

Чтобы получить доступ к заголовку листа (каждый лист делается отдельно), используйте свойство PageSetup объекта листа. Официальная документация MS

Там вы можете изменить CenterHeaderPicture:

Пример кода из Документация Microsoft

Sub InsertPicture() 

 With ActiveSheet.PageSetup.CentertHeaderPicture 
 .FileName = "C:\Sample.jpg" 
 .Height = 275.25 
 .Width = 463.5 
 .Brightness = 0.36 
 .ColorType = msoPictureGrayscale 
 .Contrast = 0.39 
 .CropBottom = -14.4 
 .CropLeft = -28.8 
 .CropRight = -14.4 
 .CropTop = 21.6 
 End With 

 ' Enable the image to show up in the center header. 
 ActiveSheet.PageSetup.CenterHeader = "&G" 

End Sub
0 голосов
/ 16 октября 2018

Вам необходимо получить доступ к объекту PageSetup следующим образом:

With ActiveSheet.PageSetup
    .CentertHeaderPicture.Filename = PictureLoc
    .CenterHeader = "&G"
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...