Новости:

Прикрепить к сообщению можно только файлы xls, gif, jpg, rar, zip,7z, bas, frm, cls, doc размером до 150 Кб.

Главное меню

Передача лейбла процедуре в качестве параметра

Автор Олег*, 24.06.2012, 19:32

« назад - далее »

Олег*

Помогите, пожалуйста, разобраться.

Имеется книга Эксель, в которой имеется пользовательская форма, на которой расположены командная кнопка и лейбл. Требуется передать этот лейбл в качестве параметра процедуре. У меня не получается, мне выдают сообщение, что тип не соответствует.

Код такой:

Option Explicit

Private Sub CommandButton1_Click()
   Call ЗаполнениеЛейбла(Label1)
End Sub

Sub ЗаполнениеЛейбла(A As Label)
   A.Caption = "Привет!"
End Sub


Попробовал сделать то же самое на VB6. Там всё работает без проблем. Почему VBA капризничает?!

P.S. Если передавать не как Label, а как Object, то работает.
Муж это единственный зарегенный юзер, а все остальные это хакеры :)

_Boroda_

А если просто
Private Sub CommandButton1_Click()
    ЗаполнениеЛейбла
End Sub

Sub ЗаполнениеЛейбла()
    Label1.Caption = "Привет!"
End Sub
Скажи мне, кудесник, любимец ба'гов...



Яндекс-деньги: 41001632713405
Webmoney: R289877159277; Z102172301748; E177867141995

Олег*

Цитата: _Boroda_ от 24.06.2012, 20:50
А если просто
Private Sub CommandButton1_Click()
    ЗаполнениеЛейбла
End Sub

Sub ЗаполнениеЛейбла()
    Label1.Caption = "Привет!"
End Sub


Просто не получится :)
Это я уже максимально всё упростил, чтобы разобраться с возникшей проблемой. На самом деле, программа большая и сложная. Именно поэтому-то и понадобилась передача лейблов в качестве параметров.
А почему всё-таки как Label не получается передавать? Это же лейбл, ну я его и передаю как лейбл, а Эксель ругается. 

Муж это единственный зарегенный юзер, а все остальные это хакеры :)

Hugo121

Вероятно он не может определиться... :)
Sub ЗаполнениеЛейбла(A As msforms.Label)
   A.Caption = "Привет!"
End Sub
webmoney: E265281470651 Z422237915069

Олег*

Цитата: Hugo121 от 24.06.2012, 21:26
Вероятно он не может определиться... :)
Sub ЗаполнениеЛейбла(A As msforms.Label)
   A.Caption = "Привет!"
End Sub


Гениально!!! Всё работает! Огромное спасибо!
Муж это единственный зарегенный юзер, а все остальные это хакеры :)