我有一个宏绑定到一个命令按钮,允许用户插入图像。
Sub Insert_Image()
ActiveSheet.Unprotect
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))
'Position Image
img.Left = 598
img.Top = 70
mbResult = MsgBox("Did you select the correct image?", vbYesNo)
Select Case mbResult
Case vbNo:
img.Delete
End Select
End If
End With
ThisWorkbook.Activate
ActiveSheet.Protect
End Sub
---------------------------------------------
Sub Delete_Image()
img.Delete
End Sub
我正在尝试创建一个单独的命令按钮,允许用户删除图像,如果他们插入错误的图像。
当我将Dim img As Object
更改为Public img As Object
时,我在Sub或Function Error中得到一个无效属性,如果我将其保留为Dim
img.delete
为空。
我不确定如何跨多个潜艇跨越变量。
提前致谢。
把它放在你的Sub之外,在模块的顶部:
Option Explicit
Public img As Object
Public Sub CreateImg()
Set img = ActiveSheet.Pictures.Insert(.SelectedItems(1))
End Sub
Public Sub DeleteImg()
If Not (img Is Nothing) Then
img.Delete
Set img = Nothing
End If
End Sub