Артем привет!
Есть вот такой код:
str1.Cells(kod_filiala + 6, 4) = Val(Form2.TextBox1.Text)
str1.Cells(kod_filiala + 6, 5) = Val(Form2.TextBox2.Text)
str1.Cells(kod_filiala + 6, 6) = Val(Form2.TextBox3.Text)
str1.Cells(kod_filiala + 6, 7) = Val(Form2.TextBox4.Text)
str1.Cells(kod_filiala + 6, 8) = Val(Form2.TextBox5.Text)
str1.Cells(kod_filiala + 6, 9) = Val(Form2.TextBox6.Text)
str1.Cells(kod_filiala + 6, 10) = Val(Form2.TextBox7.Text)
str1.Cells(kod_filiala + 6, 11) = Val(Form2.TextBox8.Text)
Возможно ли все эту писанину заменить на такую
For i=1 to n
Условия......
end if
т.е. чтобы ТекстБоксы перебирались как массив.
С Уважением, Владимир.
**********************************************
With best wishes, Vladimir(Владимир)
My E-mail stilvlad@chat.ru (text only, koi-8 only, 60 kb),
stilvlad@mail.ru (all formats).
My Web: http://stilvlad.chat.ru
**********************************************
*Пожалуйста цитируйте всю переписку со мной*
Чтож давайте попробуем. Создаем книгу. На ней расположим именованные ячейки.
TB1
TB2
TB3
TB4
Создали форму и на ней элементы TextBox. Внимание, сначала создавайте TextBox, а потом кнопки, это позволит избежать проверки типов для Controls. Имена:
TBB1
TBB2
TBB3
TBB4
Код по кнопке "ДА":
Private Sub CommandButton1_Click()
' объект элемент управления
Dim objObject As Control
' объект диапазон
|
|
Dim raRange As Range
' строка с адресом диапазона
Dim stAdders As String
' цикл по всем элементам управления
For x = 0 To UserForm1.Controls.Count - 3
' присвоить обьекту элемент управления
Set objObject = UserForm1.Controls.Item(x)
' создать адрес ячейки
stAdders = "TB" + LTrim(Str(x + 1))
' получить диапазон
Set raRange = Range(stAdders)
' присвоить ему значение из элемента управления
raRange.Value = objObject.Text
Next x
' закрыть форму
Unload Me
End Sub
Код кнопки "нет":
Private Sub CommandButton2_Click()
Unload Me
End Sub
Запускной макрос:
Sub TestForm()
UserForm1.Show
End Sub
Вот и все. Попробуйте. Можете загрузить проект и посмотреть.