Страницы: 1
RSS
Получение значения переменной из формы
 
Доброго времени, есть форма с комбоксом, в ячейку она пишет нормально, но мне надобна получить значение не в ячейке, а в переменной для дальнейшей работы (без использования листа), значение переменной будет только текст
Инженер не тот, кто все знает, а тот кто знает где найти ответ.
 
Код
Public a

Sub maim()
UserForm1.Show
MsgBox a
End Sub
Область действия (видимости) переменных в VBA
Согласие есть продукт при полном непротивлении сторон
 
Irbis_evs, здравствуйте
Коды
Матчасть
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
спс. попробую, попробовал малость, оказывается просто не правильно использовал public
Изменено: Irbis_evs - 20.07.2019 10:04:38
Инженер не тот, кто все знает, а тот кто знает где найти ответ.
 
Цитата
Irbis_evs: неправильно использовал public
неа — вы его вообще не использовали))) гляньте ссылки  ;)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Я полдня мучился и с паблик и с Дим, моя ошибка была в том, что я паблик объявлял после sub а не до. Везде пишут что паблик надо объявлять в начале исполняемого модуля, но блин нигде не написано что это должна быть именно первая строка, а  все остальное потом. Спасибо за помощь
Изменено: Irbis_evs - 20.07.2019 10:51:42
Инженер не тот, кто все знает, а тот кто знает где найти ответ.
 
Цитата
Irbis_evs написал: нигде не написано что это должна быть именно первая строка
Первая ссылка по запросу "VBA как объявить переменную public"

Цитата
Инженер... тот кто знает где найти ответ
Похоже, Вы не инженер :)

Публичные переменные занимают память, пока открыта книга. Если управление передается другому макросу, переменную тоже можно передать (test2 - без объявления переменной):
Код
Sub test1()
    Dim sTxt As String
    
    sTxt = "проверка"
    Call testTotal(sTxt)
End Sub

Sub test2()
    Call testTotal("OK")
End Sub

Sub testTotal(sStr As String)
    MsgBox sStr
End Sub
 
Irbis_evs,
читайте цикл жизни переменных
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Спс, я больше связист ( и по образованию в частности) чем программист
Инженер не тот, кто все знает, а тот кто знает где найти ответ.
Страницы: 1
Наверх