Тема: азы насчет массивов

Добрый день! Я только пытаюсь постигнуть науку ВБА
Сделал форму - накидал два ComboBox'а
к ним воткнул значения:

ComboBox1.AddItem "1."
ComboBox1.AddItem "2."
ComboBox1.AddItem "3."
ComboBox2.AddItem "I"
ComboBox2.AddItem "II"
ComboBox2.AddItem "III"

далее при нажатии на кнопку сделал такой код:

Dim varData(3, 3) As Variant
varData(1, 1) = 2
varData(1, 2) = 4
varData(1, 3) = 7
varData(2, 1) = 8
varData(2, 2) = 9
varData(2, 3) = 8
varData(3, 1) = 3
varData(3, 2) = 8
varData(3, 3) = 4
Select Case ComboBox1.Value
Case 0
x = 1
Case 1
x = 2
Case 3
x = 3
End Select
Select Case ComboBox2.Value
Case 0
y = 1
Case 1
y = 2
Case 3
y = 3
End Select
Zna4enie = Str(varData(x, y))
Label1.Caption = Zna4enie

И не получается - в Label1 пишет "0"
Суть такая - создается массив varData(3, 3) - выбрав соотвествующие номера в каждом ComboBox'е (определяется адрес) и нажав кнопку мы получаем соотвествующеие значение в массиве по соотвествующему адресу
Не подскажите - где у меня прокол?

Re: азы насчет массивов

у тебя две ошибки:
1. Вместо Value надо использовать свойство ListIndex
2. В операторе выбора Case в третьем варианте надо писать Case 2, а не Case 3.
Обе ошибки относятся к обоим операторам выбора.

Re: азы насчет массивов

Dim varData(0 to 2,0 to 2) As Variant
varData(0, 0) = 2
varData(0, 1) = 4
varData(0, 2) = 7
varData(1, 0) = 8
varData(1, 1) = 9
varData(1, 2) = 8
varData(2, 0) = 3
varData(2, 1) = 8
varData(2, 2) = 4
Label1.Caption = Str(varData(ComboBox1.listindex, ComboBox2.listindex))
Попробуй так.

Re: азы насчет массивов

Beer (2005-08-09 13:38:30)
ХуМа (2005-08-09 13:41:30)
Спасибо - Всё получилось!
А можно еще один вопрос:
сейчас получается что я определяю массив в КнопкаClick, когда же я сделал определение массива (Dim varData(0 to 2,0 to 2) As Variant...) в UserForm_Initialize(), то выскакивает ошибка о том что Sub, Function не определена... Как ее можно определить в Clicke'е - может есть какая-то глобальная переменная?

Re: азы насчет массивов

Массив надо объявить как глобальный.
т.е. строчку "Dim VarData(0 to 2, 0 to 2) as Variant" пишешь в начале модуля, в зоне General Declarations