Run-time error '381':

Программирование на Visual Basic for Applications
du_hast
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 24.11.2004 (Ср) 12:17

Run-time error '381':

Сообщение du_hast » 24.11.2004 (Ср) 12:19

Проблема вот в чем:
В Excel97

Private Sub UserForm_Initialize()
ComboBox1.List = ActiveWorkbook.Sheets(podraz_service).Range(podraz_service_rng)
ComboBox1.ListIndex = -1
End Sub
----это все работает и не выдет ошибки

а В Excel2000 пишет, что "Не удается задать свойство List. Недопустимый индекс массива свойств."

Подскажите в чем проблема, а то не могу разобраться.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 24.11.2004 (Ср) 13:54

Дык не надо -1 задавать, он изначально стоит :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

du_hast
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 24.11.2004 (Ср) 12:17

Сообщение du_hast » 24.11.2004 (Ср) 14:15

Убрал .... и все равно не помагает.
Так почему же в Excel 97 работает, а в 2000 не работает?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 24.11.2004 (Ср) 14:26

А, точно...
Ну можно попробовать перебором его заполнить.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 24.11.2004 (Ср) 15:43

Код: Выделить всё
Private Sub UserForm_Initialize()
Dim a As Variant
a = CVar(ActiveWorkbook.Sheets("podraz_service").Range("podraz_service_rng"))
ComboBox1.List = a
ComboBox1.ListIndex = -1

End Sub

Они, видимо изменили тип Range. Ввобщем придется явно приводить к варианту.
Удачи

du_hast
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 24.11.2004 (Ср) 12:17

Сообщение du_hast » 24.11.2004 (Ср) 17:09

и это не помогает :twisted:
теперь он пишет: "Run-time error '9': Subscript out of range"

может надо что-нибудь, да где-нибудь в свойствах поменять,а? Я уже запарился с этой бадягой и не знаю, что этому VBA еще предложить.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 24.11.2004 (Ср) 17:18

А, дык тогда просто нет такого диапазона или такого листа.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

du_hast
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 24.11.2004 (Ср) 12:17

Сообщение du_hast » 24.11.2004 (Ср) 17:23

Есть они все, я их в Модуле прописал как Public Const - (или может этого не стоит делать?)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 24.11.2004 (Ср) 17:28

Кхм...
Так podraz_service - это имя переменной? :neutral:
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 24.11.2004 (Ср) 17:39

У тебя это переменные,а я так назвал лист и диапазон(так быстрее было проверить)
Кавычки убери :D да!
Удачи!

du_hast
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 24.11.2004 (Ср) 12:17

Сообщение du_hast » 24.11.2004 (Ср) 17:45

Короче ....

в модуле я написал вот это:
Public Const podraz_service = "Подразделения сервис"
Public Const podraz_service_rng = "b4:b8"

а в ComboBox-е то, что было описано выше, ну и после этого выдает ошибку.

du_hast
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 24.11.2004 (Ср) 12:17

Сообщение du_hast » 24.11.2004 (Ср) 17:47

TO Igor123 - все заработало - Thank you very much ....

Евгений Д.
Обычный пользователь
Обычный пользователь
 
Сообщения: 96
Зарегистрирован: 21.09.2004 (Вт) 17:32
Откуда: Москва

Сообщение Евгений Д. » 24.11.2004 (Ср) 17:48

Так должно сработать:

Private Sub UserForm_Initialize()

ComboBox1.List = _
Sheets(podraz_service).Range(podraz_service_rng).Value

End Sub

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 24.11.2004 (Ср) 18:08

Как подписался один человек:
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас (с) GSerg:Кто-то ещё до него
:D


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 23

    TopList