2016-08-31 7 views
1

У меня есть UserForm с кнопкой просмотра, которая позволяет пользователям осуществлять поиск через диск и выберите изображение (например, логотип):Добавление изображения на лист из UserForm (Excel VBA)

Private Sub BrowseButton_Click() 

Dim strFileName As String 

'use GetOpenFilename Method to select picture 
strFileName = Application.GetOpenFilename(filefilter:="Tiff Files(*.tif;*.tiff),*.tif;*.tiff,JPEG Files (*.jpg;*.jpeg;*.jfif;*.jpe),*.jpg;*.jpeg;*.jfif;*.jpe,Bitmap Files(*.bmp),*.bmp", FilterIndex:=2, Title:="Select a File", MultiSelect:=False) 

If strFileName = "False" Then 
    MsgBox "File Not Selected!" 
    Else 
    'load picture to Image control, using LoadPicture property 
    Me.Image1.Picture = LoadPicture(strFileName) 
    'after any change vba has to be told to refresh the UserForm for the change to appear 
    Me.Repaint 
    'label caption changes after picture is loaded 
    Me.Label1.Caption = "Logo loaded" 
End If 

End Sub 

выбранное изображение сохраняется в окне изображения в пользовательской форме. У меня есть кнопка отправки, которая, когда она выбрана, я хочу получить «изображение», которое пользователь выбрал из окна изображения, и вставить его в определенное место на листе. Это то, что я до сих пор:

Sub Image9_Click() 

'' Submit Button 

Dim sld As Worksheet 
Set sld = Sheets("Sliders") 

Dim logo As Image 
logo = colourForm.Image1 

Call updateAllColScheme ''Ignore this 

colourForm.Hide 

End Sub 

Это не работает на всех, как он выдает ошибку, кто-нибудь знает, если это может быть сделано?

+0

В программировании, «он выдает ошибку» не очень полезно описание проблемы. * Какая ошибка * поднята и на какой строке вашего кода? –

+0

У вас уже есть путь и имя файла изображения (из пользовательского ввода), почему бы не использовать 'ThisWorkbook.Worksheets (3) .Pictures.Insert (« Путь к файлу здесь »)'? – Kyle

+0

Вы считали использование 'SavePicture Me.ControlName.Picture, Filename', а затем 'activesheet.pictures.insert (имя_файла)'? –

ответ

-1

Это просто

просто добавляет TextBox (может быть невидимым в UserForm)

Private Sub BrowseButton_Click() 

Dim strFileName As String 

use GetOpenFilename Method to select picture 
strFileName = Application.GetOpenFilename(filefilter:="Tiff Files(*.tif;*.tiff),*.tif;*.tiff,JPEG Files (*.jpg;*.jpeg;*.jfif;*.jpe),*.jpg;*.jpeg;*.jfif;*.jpe,Bitmap Files(*.bmp),*.bmp", FilterIndex:=2, Title:="Select a File", MultiSelect:=False) 

TextBox1 = strFileName 'use to save URL or Link from picture 

If strFileName = "False" Then 
    MsgBox "File Not Selected!" 
    Else 
    'load picture to Image control, using LoadPicture property 
    Me.Image1.Picture = LoadPicture(strFileName) 
    'after any change vba has to be told to refresh the UserForm for the change to appear 
    Me.Repaint 
    'label caption changes after picture is loaded 
    Me.Label1.Caption = "Logo loaded" 
End If 

End Sub 
Смежные вопросы