Excel VBA Автоматическое создание / обновление выпадающего списка из файлов / изображений в папке - PullRequest
0 голосов
/ 19 октября 2018

Я хочу объединить мои сценарии в работу вместе, мой сценарий раскрывающегося списка (ComboBox), с моим текущим сценарием, который загружает изображения / изображения в заголовок моего листа Excel.

Мой сценарий длязагрузка изображений выглядит следующим образом (и работает):

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:\Images" & Range("A2").Value & ".png"

With ActiveSheet.PageSetup
    .CenterHeaderPicture.Filename = PictureLoc
    .CenterHeaderPicture.Height = 25
    '.CenterHeaderPicture.Width = 100
    .CenterHeader = "&G"
End With

End If

End Sub

Мой скрипт, который обновляет ComboBox новыми изображениями из моей папки (и это также работает):

Private Sub CommandButton1_Click()
Filename = Dir("K:\Images\", vbNormal)

ComboBox1.Clear

Do While Len(Filename) > 0

ComboBox1.AddItem Filename

Filename = Dir()
Loop


End Sub

Myпроблема в том, что мой первый скрипт (загрузка изображений в заголовок) запускается со значением / именем, выбранным в ComboBox.Он отлично работает для обычного списка проверки в ячейке A2, но я не могу получить его для извлечения значения в ComboBox вместо A2.Я попытался изменить первую часть сценария следующим образом, но он не будет извлекать значение:

Dim PictureLoc As String

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

ActiveSheet.Pictures.Delete

'PictureLoc = "K:\Images\" & Range("A2").Value & ".jpg"
PictureLoc = "K:\Images\" & ComboBox1.Value '& ".jpg"

With ActiveSheet.PageSetup
    .CenterHeaderPicture.Filename = PictureLoc
    .CenterHeaderPicture.Height = 25
    '.CenterHeaderPicture.Width = 100
    .CenterHeader = "&G"
End With

End If

End Sub

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

...