Страницы: 1
RSS
выдает что LoadPicture не определена ...
 
Доброго времени суток, друзья!

Уже голову сломал, а "оно как не работало, так и не работает". Есть код на событии Control-а в UserForm:
Код
Private Sub lbx_TipKroja_Change()
    Dim arrZnac
    Dim arrFiguraS
    Dim kwORul As Integer
    Dim nmVer As String, znacParam As String
    Dim wbThs As Workbook
    Dim wbNSI As Workbook
    Dim flg As Boolean

    znacParam = ""
    flg = True
    With Me.lbx_Kroja
        If .Text = "" Then Exit Sub
        'Me.lbx_TipRaskroja.ListIndex = -1 '- очищаем предыдущий выбор
        risNM = "Р_" & .List(.ListIndex, 2)
        znacParam = .List(.ListIndex, 4)
    End With

    'доведение параметра до формата имени файла
    If InStr(1, risNM, "/", vbTextCompare) > 0 Then
        risNM = Replace(risNM, "/", "][", , , vbTextCompare)
    End If
    '
    If InStr(1, znacParam, "][", vbTextCompare) > 0 Then
        With Me.lbx_TipKroja
            arrFiguraS = Split(.List(.ListIndex, 1), " / ", , vbTextCompare)
        End With
        arrZnac = Split(znacParam, "][", , vbTextCompare)
        znacParam = ""
    Else
        With Me.lbx_TipKroja
            onlFiguraS = .List(.ListIndex, 1)
        End With
    End If

    Set wbThs = ThisWorkbook '
    nmVer = Application.Version
    Select Case nmVer
        Case "14.0"
            Dim thWbFullName As String, nmFl As String
            thWbFullName = wbThs.FullName
            nmFl = wbThs.Name
            thWbPath = Replace(thWbFullName, "\" & nmFl, "", , , vbTextCompare)
        Case "16.0"
            thWbPath = wbThs.Path
    End Select

    flSPR = "\НСИ\Типы раскроя\" & risNM & ".jpg"

    If Dir(thWbPath & flSPR) = "" Then 'проверяем существует ли файл, по указанному пути
        flSPR = "\ЭлУпр\НеЗнаю.jpg"
        flg = False
    End If

    With Me.img_TipKroja
        .PictureSizeMode = fmPictureSizeModeZoom
        .Picture = LoadPicture(thWbPath & flSPR)
    End With

    If flg = False Then
        MsgBox "Файла нет", vbCritical + vbOKOnly, flSPR
        Exit Sub
    End If
    If usf_Plenka.tbx_KolWoRulonow.Value = "" Then Exit Sub
    If znacParam = "" Then
        For j = LBound(arrZnac) To UBound(arrZnac)
            geomFigur = arrFiguraS(j)
            
            With usf_Plenka
                Lt = .Left
                Tp = .Top + .Height + 6
                
                kwORul = CInt(.tbx_KolWoRulonow.Value)
            End With

            With usf_SborZnac
                .Caption = "Маска: " & geomFigur
                .lbl_plan.Caption = arrZnac(j)
                .lbl_planWsego.Caption = CStr(CInt(arrZnac(j)) * kwORul)
                .tbx_DateOper.Value = Format(Date, "dd.mm.yyyy")
                .Left = Lt
                .Top = Tp
                If j = UBound(arrZnac) Then
                    .Tag = 0
                Else
                    .Tag = 1
                End If
                
                .Show
            End With
        Next j
        
        Erase arrFiguraS
        Erase arrZnac
    Else
        geomFigur = onlFiguraS
        
        With usf_Plenka
            Lt = .Left
            Tp = .Top + .Height + 6
            kwORul = CInt(.tbx_KolWoRulonow.Value)
        End With

        With usf_SborZnac
            .Caption = "Маска: " & geomFigur
            .lbl_plan.Caption = znacParam
            .lbl_planWsego.Caption = CStr(CInt(znacParam) * kwORul)
            .tbx_DateOper.Value = Format(Date, "dd.mm.yyyy")
            .Left = Lt
            .Top = Tp
            .Tag = 0
            
            .Show
        End With
    End If
End Sub
и вот на строках:
Код
    With Me.img_TipKroja
        .PictureSizeMode = fmPictureSizeModeZoom
        .Picture = LoadPicture(thWbPath & flSPR)
    End With
выдает сообщение, скриншот на скрепке. Хотя в другом файле все работало. В чем проблема - непонятно (для меня). Помогите, пожалуйста.
 
Вероятно, в другом файле была (и есть) функция LoadPicture.
 
Доброго дня, уважаемый RAN!
Дело в том, что в инете товарищи предлагают использовать LoadPicture для загрузки изображения в Image и описывают как свойство ...
А я вот и в сомнениях: и в предыдущем и в этом файле: объявил (точнее никак не объявлял) и использовал - одинаково. А работает по-разному. Там набираю и появляется подсказка; здесь просто строка и ошибка. В чем разница - не пойму. Ежли нужно могу файлы на почту кинуть.

Вот решил выложить глючный файл. Вопрос: Чего он не хочет картинку показывать?
Изменено: Григорий Калюга - 26.09.2022 13:03:21 (добавил данные)
 
Ура! Заработало! В Tools → References выставил набор библиотек, как на картинке и ... дело пошло! Всем СПАСИБО! Может кто-то "покопается" и дополнит меня: думаю свойство сидит в RefEdit и(или) OLE Automation ...
Изменено: Григорий Калюга - 26.09.2022 14:08:52
 
OLE Automation за это отвечает, так что с RefEdit можете смело убирать галку(он бывает глючит и если не используете в проекте - лучше убрать).
Но вообще странно, что OLE Automation не подхватилась изначально. Эта библиотека вроде как по умолчанию для всех файлов включена.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
Эта библиотека вроде как по умолчанию для всех файлов включена.
Так можно и отключить легким движением руки.  :)
Владимир
 
Цитата
sokol92 написал:
Так можно и отключить
ну это понятно. Но это же надо было специально сделать  ;) Не думаю, что это можно было сделать случайно
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
БОльшущее Человечье СПАСИБО! Как всегда Дмитрий меня не бросил!!!! Еще вопрос, хотя и не по-теме, вроде, Но, в контексте разговора. Можно ли на ВБА сделать так, чтобы при Workbook_Open проверялись подключенные библиотеки и, недостающие включались? Ну или хотя бы выводить пользователю сообщение, чего ему не хватает "для ПОЛНОГО счестья".
 
Не всегда это может сработать. VBA может начать ругаться еще на стадии компиляции кода, а без недостающих библиотек сделать этого не получится. И мы получим ошибку раньше, чем что-то подключим. Но если код в модуле UserFrom и проблема именно в том, что используется какой-то метод из какой-то библиотеки - то можно попробовать при открытии проверять наличие и если такой нет - подключить. Вот здесь уже разбиралось:
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=59316
там есть все необходимые коды и ссылки.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
Не думаю, что это можно было сделать случайно
Элементарно, проходили. Подключаешь ошибочно что-нибудь в References, затем пытаешься исправить ошибку и отключить, а квадратики маленькие...
Владимир
Страницы: 1
Наверх