Вопрос № 98350: Здравствуйте!
Вопрос:
1. Мне нужно написать программу, которая работает с пользовательским типом данных.
Программа выглядит так:
Option Explicit
Type tabl
Nazvanie As String
Autor As String
Tirag As Long
I...
Вопрос № 98.350
Здравствуйте!
Вопрос:
1. Мне нужно написать программу, которая работает с пользовательским типом данных.
Программа выглядит так:
Option Explicit
Type tabl
Nazvanie As String
Autor As String
Tirag As Long
Izdatelstvo As String
End Type
Dim T(1000) As tabl, i As Integer
Private Sub CommandButton1_Click()
End Sub
Private Sub UserForm_Click()
End Sub
Этот текст находится в модуле формы, я полагаю, что пользовательский тип нельзя определять в модуле формы, потому и выходит такая ошибка при компиляции - "Compile error:
Cannot define a Public user-defined type within an object module"
2. И еще один вопрос, для чего применяют опцию Option Explicit в начале модуля программы и в каких случаях вообще применяют?
Отправлен: 14.08.2007, 12:16
Вопрос задал: _Alexey_ (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Alexander N. Monastyrsky
Здравствуйте, _Alexey_!
1. Public Type tabl
Nazvanie As String
Autor As String
Tirag As Long
Izdatelstvo As String
End Type
Пользовательский тип требует опубликования.
2. Option Explicit - используется на уровне файла для реализации явного объявления всех переменных.
Из МСДН в приложении обьяснение
Приложение:
--------- Страшен Русский сервис, бессмысленный и беспощадный...
Ответ отправил: Alexander N. Monastyrsky (статус: 1-ый класс)
Ответ отправлен: 14.08.2007, 13:31 Оценка за ответ: 4 Комментарий оценки: Так пользовательский тип может быть объявлен в модуле формы?
Отвечает: Werwy
Здравствуйте, _Alexey_!
Публичные объявления, в том числе пользовательские типы должны находится в модуле Project/add module иначе выскакивает приведенная в вопросе ошибка компиляции.
По второму вопросу. Option Explicit применяется для принудительного объявления переменных (а также констант, массивов и т.д.). если данная опция не включена, то объявление происходит при первом случае появления переменной в коде, при включении для всех переменных, встречающихся в коде и не обявленных в разделе General declarations, будет появлятся предупреждение: Compile error: Variable not defined
--------- Слишком яркое солнце порождает пустыню
Ответ отправил: Werwy (статус: 2-ой класс)
Ответ отправлен: 14.08.2007, 14:12 Оценка за ответ: 5 Комментарий оценки: Ответ, что надо, спасибо!
Отвечает: Черников Игорь Владимирович
Здравствуйте, _Alexey_!
1. Пользовательский тип данных желательно объявлять в модуле, это очень удобно.
2. Опцию Option Explicit применяют для того, что бы корректно самому объявить все переменные. Программа не запустится, если есть хоть одна не объявленная переменная, VB подскажет Вам где и какая. После этого эту строку Option Explicit можно убрать, компилятор её не использует и от этого ничего не изменится.
--------- От каждого по способностям, каждому по труду
Ответ отправил: Черников Игорь Владимирович (статус: 3-ий класс)
Ответ отправлен: 14.08.2007, 16:17 Оценка за ответ: 5 Комментарий оценки: Теперь мне понятно все, спсибо! :)
Отвечает: Ualife
Здравствуйте, _Alexey_!
1. Создайте модуль Project->Add module и внесите в него пользовательский тип данных
2. По идее во всех. Они помогают избавляться от некоторых ошибок при работе с переменными
--------- Нет границ - есть лишь препятствия!
Ответ отправил: Ualife (статус: 3-ий класс)
Ответ отправлен: 16.08.2007, 18:49 Оценка за ответ: 5 Комментарий оценки: Весьма благодарен, так и зделал, ошибка выходить перестала!