Артем привет!
Есть вот такой код:
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
Вот и все. Попробуйте. Можете загрузить проект и посмотреть.