Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.07.2014, 13:48   #1
Марина1995
Новичок
Джуниор
 
Регистрация: 05.07.2014
Сообщений: 2
Восклицание нужно прокомментировать каждое действие,совсем в этом не разбираюсь,заранее спасибо)

Код:
Private Sub CommandButton1_Click()
Dim i As Integer, tb As Object
i = 1
For Each tb In UserForm1.Controls
If tb.Name = "TextBox" & i Then
tb.Value = (i * 5)
i = i + 1
End If
If i = 49 Then Exit For
Next tb
End Sub

Private Sub CommandButton2_Click()
End
End Sub

Private Sub CommandButton3_Click()
Dim i As Integer, tb As Object
i = 1
For Each tb In UserForm1.Controls
If tb.Name = "TextBox" & i Then
tb.Text = ""
tb.BackColor = &H80000005
i = i + 1
End If
Next tb
Range("A1:H8").Select
Selection.ClearContents
Range("A1").Select

End Sub

Private Sub CommandButton4_Click()
Dim tb As Object
Dim k As Integer
Dim i As Integer
Dim j As Integer
Dim n As Integer
k = 1
For Each tb In UserForm1.Controls
If tb.Name = "TextBox" & k Then
Cells((k - 1) \ 6 + 1, ((k - 1) Mod 6) + 1) = tb.Value
k = k + 1
End If
If k = 49 Then Exit For
Next tb
For i = 1 To 8
n = 0
For j = 1 To 6
n = n + Cells(i, j)
Next j
For Each tb In UserForm1.Controls
If tb.Name = "TextBox" & (i + 48) Then
tb.Text = n
End If
Next tb
If i = 56 Then Exit For
Cells(i, 8) = n
Next i

End Sub

Private Sub CommandButton5_Click()
Dim Max As Integer
Dim s As Integer
Dim i As Integer
Max = 0
s = 0
k = 48
For Each tb In UserForm1.Controls
If tb.Name = "TextBox" & k Then
Cells(k) = tb.Value
k = k + 1
End If
If k = 57 Then Exit For
Next tb
For i = 49 To 56
If Cells(i) > Max Then
Max = Cells(i)
s = i
End If
Next i
TextBox57.Value = Max
For k = (6 * (s - 49) + 1) To (6 * (s - 49) + 1) + 5
For Each tb In UserForm1.Controls
If tb.Name = "TextBox" & (k) Then
tb.BackColor = &HC000&
End If
Next tb
Next k

End Sub

Последний раз редактировалось Stilet; 05.07.2014 в 14:13.
Марина1995 вне форума Ответить с цитированием
Старый 05.07.2014, 14:20   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
Private Sub CommandButton1_Click()
Dim i As Integer, tb As Object
i = 1

Для каждого компонента на форме
For Each tb In UserForm1.Controls

Выяснить Текстовое поле ли он
If tb.Name = "TextBox" & i Then

И если да то присвоить (?!) ему некое число, кратное пяти
tb.Value = (i * 5)

Приготовив для следующего поля следующее такое число
i = i + 1
End If

И так пока не дойдем до числа 49. Если дошли - выходим из цикла.
If i = 49 Then Exit For
Next tb
End Sub
Код:
Private Sub CommandButton3_Click()
Dim i As Integer, tb As Object
i = 1

Для каждого контрола формы, а точнее текстового поля
For Each tb In UserForm1.Controls
If tb.Name = "TextBox" & i Then
Очистить его содержимое
tb.Text = ""
И задать какой-то цвет
tb.BackColor = &H80000005
i = i + 1
End If
Next tb

После цикла очистить ячейки A1:H8
Range("A1:H8").Select
Selection.ClearContents
Range("A1").Select

End Sub
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.07.2014, 18:31   #3
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,605
По умолчанию

Цитата:
Сообщение от Марина1995 Посмотреть сообщение
Код:
Private Sub CommandButton1_Click() обработчик события нажатия на кнопку 1
Dim i As Integer, tb As Object объявление переменных
i = 1 присвоение целочисленной переменной значения
For Each tb In UserForm1.Controls цикл по элементам интерфейса формы 1
If tb.Name = "TextBox" & i Then условный оператор с условием "если элемент интерфейса имеет тип текстового поля с номером i
tb.Value = (i * 5) значение элемента интерфейса установить в i*5
i = i + 1 увеличить значение переменной на единицу
End If окончание условного оператора
If i = 49 Then Exit For если значение переменной i равно 49 то прекращается выполнение цикла
Next tb переход к следующей итерации в цикле
End Sub окончание функции обработки события

Private Sub CommandButton2_Click() обработчик нажатия на кнопку 2
End ошибка
End Sub

Private Sub CommandButton3_Click() обработчик нажатия на кнопку 3
Dim i As Integer, tb As Object объявление переменных
i = 1 инициализация целочисленной переменной
For Each tb In UserForm1.Controls для каждого элемента интерфейса на форме 
If tb.Name = "TextBox" & i Then условный оператор "если элемент интерфейса имеет тип текстового поля с номером i
tb.Text = "" убрать текст из текстового поля
tb.BackColor = &H80000005  установить фон текстового поля
i = i + 1 увеличение значения переменной на 1
End If окончание условного оператора
Next tb окончание цикла
Range("A1:H8").Select выделить ячейки таблицы в диапазоне от A1 до H8 (таблица 8x8)
Selection.ClearContents очистить содержание выделенных ячеек таблицы
Range("A1").Select выделить ячейку A1

End Sub окончание функции обработки события нажатия на кнопку 3

Private Sub CommandButton4_Click() обработчик события нажатия на кнопку 4
Dim tb As Object объявление переменной имеющей тип объект
Dim k As Integer объявление целочисленной переменной
Dim i As Integer
Dim j As Integer
Dim n As Integer
k = 1 инициализация переменной
For Each tb In UserForm1.Controls цикл для каждого элемента интерфейса формы
If tb.Name = "TextBox" & k Then если элемент интерфейса имеет тип текстовое поле с номером k
Cells((k - 1) \ 6 + 1, ((k - 1) Mod 6) + 1) = tb.Value значение ячейки с индексами (k - 1) \ 6 + 1, ((k - 1) Mod 6) + 1 устанавливается значение из текстового поля, оператор \ осуществляет целочисленной деление
k = k + 1 увеличение переменной k на 1
End If окончание условного оператора
If k = 49 Then Exit For если k = 49 то исполнение цикла прекращается
Next tb переход к следующему элементу интерфейса
For i = 1 To 8 первый цикл по ячейкам таблицы 8x8
n = 0 установление начальной суммы
For j = 1 To 6 внутренний цикл по ячейкам таблицы от 1 до 6
n = n + Cells(i, j) накопительное увеличение суммы (подсчет суммы элементов из ячеек таблицы 1x6 )
Next j окончание внутреннего цикла
For Each tb In UserForm1.Controls перебор элементов интерфейса
If tb.Name = "TextBox" & (i + 48) Then определение 48+i элемента интерфейса на форме в цикле
tb.Text = n запись суммы в элемент интерфейса на форме
End If окончание условного оператора
Next tb окончание цикла
If i = 56 Then Exit For выход из цикла на 56 элементе интерфейса
Cells(i, 8) = n запись суммы таблицы 1x6 в 8 ячейку
Next i окончание первого цикла

End Sub окончание обработчика нажатия на кнопку 4

Private Sub CommandButton5_Click() обработчик нажатия на кнопку 5
Dim Max As Integer объявление целочисленной переменной
Dim s As Integer
Dim i As Integer
Max = 0 инициализация переменной
s = 0
k = 48
For Each tb In UserForm1.Controls перебор элементов на форме
If tb.Name = "TextBox" & k Then если элемент на форме имеет индекс k
Cells(k) = tb.Value то в ячейку нужно записать значения из элемента на форме
k = k + 1 увеличение индекса
End If
If k = 57 Then Exit For перебор до 57 элемента
Next tb
For i = 49 To 56 для элементов с индексами от 49 до 56
If Cells(i) > Max Then определение максимального значения из ячеек от 49 до 56
Max = Cells(i) присвоение максимального значения
s = i присвоение индекса максимального значения
End If
Next i
TextBox57.Value = Max записать в 57 элемент на форме максимальное значение из ячеек от 49 до 56 
For k = (6 * (s - 49) + 1) To (6 * (s - 49) + 1) + 5
For Each tb In UserForm1.Controls перебор элементов интерфейса
If tb.Name = "TextBox" & (k) Then если элемент интерфейса имеет индекс k
tb.BackColor = &HC000& установить фоновый цвет элемента интерфейса
End If
Next tb
Next k

End Sub окончание функции
Примерно так сойдет?
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 05.07.2014, 19:41   #4
Марина1995
Новичок
Джуниор
 
Регистрация: 05.07.2014
Сообщений: 2
По умолчанию

огромнейшее спасибо)))
Марина1995 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Здравствуйте. Нужно написать программу в с++. Заранее спасибо. ekaterin Помощь студентам 1 14.05.2012 21:08
В Паскале !! Заранее спасибо ))) Alexxxxxx Помощь студентам 4 23.10.2011 00:29
Мне нужно узнать как получившееся выражение разделить на пи...заранее спасибо)) ***Виталия*** Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 30 02.06.2010 15:13