тусклый через несколько подводных лодок - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть макрос, связанный с командной кнопкой, которая позволяет пользователям вставлять изображение.

    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 пусто.

Я не уверен, как еще распределить переменные по нескольким подпрограммам.

Заранее спасибо.

1 Ответ

0 голосов
/ 27 сентября 2018

Поместите это вне вашего 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...