Excel VBA – 将图像(使用对话框)插入某个单元格

所以我已经在这里和互联网上的各种网站进行了广泛的search,但我很难find答案。 我也不是最了解VBA的用户。

基本上,我需要:点击一个button,popup“插入图像”对话框,用户select一个图像文件,图像应插入单元格B2。 理想情况下,我想要调整这个图像的大小,使它不超过X,不比Y高。

这是我的代码到目前为止(这给了我一个'运行时错误424'并指向TextBox1.Value行)。 任何build议/改进总是不胜感激!

Sub ChangeImage() With Application.FileDialog(msoFileDialogFilePicker) .AllowMultiSelect = False .ButtonName = "Submit" .Title = "Select an image file" .Filters.Clear .Filters.Add "JPG", "*.JPG" .Filters.Add "JPEG File Interchange Format", "*.JPEG" .Filters.Add "Graphics Interchange Format", "*.GIF" .Filters.Add "Portable Network Graphics", "*.PNG" .Filters.Add "Tag Image File Format", "*.TIFF" .Filters.Add "All Pictures", "*.*" If .Show = -1 Then TextBox1.Value = .SelectedItems(1) Image1.PictureSizeMode = fmPictureSizeModeZoom Image1.Picture = LoadPicture(.SelectedItems(1)) Else MsgBox ("Cancelled.") End If End With End Sub 

谢谢!

-一个

这是一种使用不同types的插入操作的方法。 示例还显示如何定位和缩放图像。

 Sub ChangeImage() With Application.FileDialog(msoFileDialogFilePicker) .AllowMultiSelect = False .ButtonName = "Submit" .Title = "Select an image file" .Filters.Clear .Filters.Add "JPG", "*.JPG" .Filters.Add "JPEG File Interchange Format", "*.JPEG" .Filters.Add "Graphics Interchange Format", "*.GIF" .Filters.Add "Portable Network Graphics", "*.PNG" .Filters.Add "Tag Image File Format", "*.TIFF" .Filters.Add "All Pictures", "*.*" If .Show = -1 Then Dim img As Object Set img = ActiveSheet.Pictures.Insert(.SelectedItems(1)) 'Scale image size 'img.ShapeRange.ScaleWidth 0.75, msoFalse, msoScaleFromTopLeft 'img.ShapeRange.ScaleHeight 0.75, msoFalse, msoScaleFromTopLeft 'Position Image img.Left = 50 img.Top = 150 'Set image sizes in points (72 point per inch) img.Width = 150 img.Height = 150 Else MsgBox ("Cancelled.") End If End With End Sub