TempArr1(0) = "Test1"
TempArr1(0) = "Test2"
TempArr1(0) = "Test3"
TempArr1(0) = "Test4"
TempArr1(0) = "Test5"
TempArr2(0) = 1
TempArr2(0) = 2
TempArr2(0) = 3
TempArr2(0) = 4
TempArr2(0) = 5
If IsNumeric(Text1(0).Text) Then
Grid.AddAllCbData CLng(Text1(0).Text), TempArr1, TempArr2
End If
Проблема с передачей массива
Код:
здесь Grid - это контрол
AddAllCbData - процедура грида:
Код:
Public Sub AddAllCbData(ByVal ColIndex As Long, Arr1 As Variant, Arr2 As Variant)
'МАХ Получает массивы для заполнения комбобоксов
If ColIndex <= Column.ubound And ColIndex >= Column.LBound Then
Column(ColIndex).SetComboData Arr1, Arr2
End If
'МАХ Текстовый цикл
Dim I As Long
For I = LBound(Arr1) To UBound(Arr1)
Debug.Print Arr1(I)
Next
End Sub
'МАХ Получает массивы для заполнения комбобоксов
If ColIndex <= Column.ubound And ColIndex >= Column.LBound Then
Column(ColIndex).SetComboData Arr1, Arr2
End If
'МАХ Текстовый цикл
Dim I As Long
For I = LBound(Arr1) To UBound(Arr1)
Debug.Print Arr1(I)
Next
End Sub
Сюда уже от массива Arr1(I) остаётся только 1 значение, которое передали первым. Остальные - пустые
Далее:
Column - ещё один контрол.
SetComboData - его процедура:
Код:
Public Sub SetComboData(ByVal ArrCD As Variant, ArrItmDates As Variant)
'МАХ Получает массив данных для комбобокса
Dim I As Long
Dim B As Long
For B = CbCol.LBound To CbCol.UBound
For I = 0 To UBound(ArrCD)
CbCol(B).AddItem ArrCD(I), I
CbCol(B).ItemData(I) = ArrItmDates(I)
Next
Next
End Sub
'МАХ Получает массив данных для комбобокса
Dim I As Long
Dim B As Long
For B = CbCol.LBound To CbCol.UBound
For I = 0 To UBound(ArrCD)
CbCol(B).AddItem ArrCD(I), I
CbCol(B).ItemData(I) = ArrItmDates(I)
Next
Next
End Sub
В ней должны заполняться комбобоксы.
Вобщем, где я не так, как надо, передаю массив? В чём ошибка?
Цитата:
Originally posted by mhaturov
Народ, у меня какая-то беда с передачей в процедуру массива. Вобщем, происходит это так:
здесь Grid - это контрол
AddAllCbData - процедура грида:
Сюда уже от массива Arr1(I) остаётся только 1 значение, которое передали первым. Остальные - пустые
Далее:
Column - ещё один контрол.
SetComboData - его процедура:
В ней должны заполняться комбобоксы.
Вобщем, где я не так, как надо, передаю массив? В чём ошибка?
Народ, у меня какая-то беда с передачей в процедуру массива. Вобщем, происходит это так:
Код:
TempArr1(0) = "Test1"
TempArr1(0) = "Test2"
TempArr1(0) = "Test3"
TempArr1(0) = "Test4"
TempArr1(0) = "Test5"
TempArr2(0) = 1
TempArr2(0) = 2
TempArr2(0) = 3
TempArr2(0) = 4
TempArr2(0) = 5
If IsNumeric(Text1(0).Text) Then
Grid.AddAllCbData CLng(Text1(0).Text), TempArr1, TempArr2
End If
TempArr1(0) = "Test2"
TempArr1(0) = "Test3"
TempArr1(0) = "Test4"
TempArr1(0) = "Test5"
TempArr2(0) = 1
TempArr2(0) = 2
TempArr2(0) = 3
TempArr2(0) = 4
TempArr2(0) = 5
If IsNumeric(Text1(0).Text) Then
Grid.AddAllCbData CLng(Text1(0).Text), TempArr1, TempArr2
End If
здесь Grid - это контрол
AddAllCbData - процедура грида:
Код:
Public Sub AddAllCbData(ByVal ColIndex As Long, Arr1 As Variant, Arr2 As Variant)
'МАХ Получает массивы для заполнения комбобоксов
If ColIndex <= Column.ubound And ColIndex >= Column.LBound Then
Column(ColIndex).SetComboData Arr1, Arr2
End If
'МАХ Текстовый цикл
Dim I As Long
For I = LBound(Arr1) To UBound(Arr1)
Debug.Print Arr1(I)
Next
End Sub
'МАХ Получает массивы для заполнения комбобоксов
If ColIndex <= Column.ubound And ColIndex >= Column.LBound Then
Column(ColIndex).SetComboData Arr1, Arr2
End If
'МАХ Текстовый цикл
Dim I As Long
For I = LBound(Arr1) To UBound(Arr1)
Debug.Print Arr1(I)
Next
End Sub
Сюда уже от массива Arr1(I) остаётся только 1 значение, которое передали первым. Остальные - пустые
Далее:
Column - ещё один контрол.
SetComboData - его процедура:
Код:
Public Sub SetComboData(ByVal ArrCD As Variant, ArrItmDates As Variant)
'МАХ Получает массив данных для комбобокса
Dim I As Long
Dim B As Long
For B = CbCol.LBound To CbCol.UBound
For I = 0 To UBound(ArrCD)
CbCol(B).AddItem ArrCD(I), I
CbCol(B).ItemData(I) = ArrItmDates(I)
Next
Next
End Sub
'МАХ Получает массив данных для комбобокса
Dim I As Long
Dim B As Long
For B = CbCol.LBound To CbCol.UBound
For I = 0 To UBound(ArrCD)
CbCol(B).AddItem ArrCD(I), I
CbCol(B).ItemData(I) = ArrItmDates(I)
Next
Next
End Sub
В ней должны заполняться комбобоксы.
Вобщем, где я не так, как надо, передаю массив? В чём ошибка?
Sorry, я опять стормозил. (Посмотрите, что я передаю в 1 процедуре, и как это передаётся в поледнюю (ByVal)):D :D :D