Вопрос № 125144: Здравствуйте!
Я написал программу для перевода одних единиц скорости скачивания в другие. Скажите, пожалуйста, как мне сделать так, чтобы если я ввожу букву вместо числа (это там, где я должен ввести скорость скачивания), он у меня выдавал сообще...Вопрос № 125217: Здравствуйте!
Подскажите пожалуйста макрос Excel для выяснения знака зодиака:
есть ячейки даты рождения (число, месяц, год).
Спасибо.
...
Вопрос № 125.144
Здравствуйте!
Я написал программу для перевода одних единиц скорости скачивания в другие. Скажите, пожалуйста, как мне сделать так, чтобы если я ввожу букву вместо числа (это там, где я должен ввести скорость скачивания), он у меня выдавал сообщение "Что буквы не принимаются". Программа разработана на языке Visual Basic 6.0.
Код программы:
Private Sub Clear_Click()
txtParamA.Text = ""
txtparamB.Text = ""
txtparamC.Text = ""
txtparamD.Text = ""
lblX1.Caption = "Êá/ñ: "
lblX2.Caption = "Ìá/ñ: "
lbl13.Caption = "êÁèò/ñ: "
lbl14.Caption = "ìÁèò/ñ: "
End Sub
Private Sub clear_keypress(keyascii As Integer)
If keyascii = 27 Then
Call Clear_Click
End If
End Sub
Private Sub command2_keypress(keyascii As Integer)
If keyascii = 27 Then
Call Clear_Click
End If
End Sub
Private Sub CmdCalculate2_keypress(keyascii As Integer)
If keyascii = 27 Then
Call Clear_Click
End If
End Sub
Private Sub Command134_KeyPress(keyascii As Integer)
If keyascii = 27 Then
Call Clear_Click
End If
End Sub
Private Sub txtparamD_KeyPress(keyascii As Integer)
If keyascii = 27 Then
Call Clear_Click
End If
If keyascii = 13 Then
Call Command134_Click
End If
End Sub
Private Sub Command134_Click()
Dim paramD As Double
Dim k1 As Double
Dim k2 As Double
Dim d14 As Double
paramD = Val(txtparamD.Text)
If paramD = 0 Then
MsgBox "Íóëü â êà÷åñòâå çíà÷åíèÿ ñêîðîñòè íå ïðèíèìàåòñÿ!", _
vbCritical, "ErroR"
Exit Sub
End If
If paramD < 0 Then
MsgBox "Îòðèöàòåëüíîå ÷èñëî êàê çíà÷åíèå ñêîðîñòè íå ïðèíèìàåòñÿ!", _
vbCritical, "ErroR"
Exit Sub
End If
d14 = ((paramD * 1024) * 1024) * 8
k1 = d14 / 1000
k2 = d14 / 1000000
lbl13.Caption = "êÁèò/ñ: " & Format(k1, "#0.##")
lbl14.Caption = "ìÁèò/ñ: " & Format(k2, "#0.##")
End Sub
Private Sub cmdCalculate_keypress(keyascii As Integer)
If keyascii = 27 Then
Call Clear_Click
End If
End Sub
Private Sub txtparamC_KeyPress(keyascii As Integer)
If keyascii = 27 Then
Call Clear_Click
End If
If keyascii = 13 Then
Call Command2_Click
End If
End Sub
Private Sub Command2_Click()
Dim paramC As Double
Dim j1 As Double
Dim j2 As Double
Dim d3 As Double
paramC = Val(txtparamC.Text)
If paramC = 0 Then
MsgBox "Íóëü â êà÷åñòâå çíà÷åíèÿ ñêîðîñòè íå ïðèíèìàåòñÿ!", _
vbCritical, "ErroR"
Exit Sub
End If
If paramC < 0 Then
MsgBox "Îòðèöàòåëüíîå ÷èñëî êàê çíà÷åíèå ñêîðîñòè íå ïðèíèìàåòñÿ!", _
vbCritical, "ErroR"
Exit Sub
End If
d3 = paramC * 1000000
j1 = (d3 / 8) / 1024
j2 = j1 / 1024
lblX1.Caption = "Êá/ñ: " & Format(j1, "#0.##")
lblX2.Caption = "Ìá/ñ: " & Format(j2, "#0.##")
End Sub
Private Sub txtparamB_KeyPress(keyascii As Integer)
If keyascii = 27 Then
Call Clear_Click
End If
If keyascii = 13 Then
Call CmdCalculate2_Click
End If
End Sub
Private Sub CmdCalculate2_Click()
Dim paramB As Double
Dim y1 As Double
Dim y2 As Double
Dim d1 As Double
paramB = Val(txtparamB.Text)
If paramB = 0 Then
MsgBox "Íóëü â êà÷åñòâå çíà÷åíèÿ ñêîðîñòè íå ïðèíèìàåòñÿ!", _
vbCritical, "ErroR"
Exit Sub
End If
If paramB < 0 Then
MsgBox "Îòðèöàòåëüíîå ÷èñëî êàê çíà÷åíèå ñêîðîñòè íå ïðèíèìàåòñÿ!", _
vbCritical, "ErroR"
Exit Sub
End If
d1 = paramB * 1024
y1 = (d1 * 8) / 1000
y2 = ((d1 * 8) / 1000) / 1000
lbl13.Caption = "êÁèò/ñ: " & Format(y1, "#0.##")
lbl14.Caption = "ìÁèò/ñ: " & Format(y2, "#0.##")
End Sub
Private Sub txtParamA_KeyPress(keyascii As Integer)
If keyascii = 27 Then
Call Clear_Click
End If
If keyascii = 13 Then
Call cmdCalculate_Click
End If
End Sub
Private Sub cmdCalculate_Click()
Dim paramA As Double
Dim x1 As Double
Dim x2 As Double
Dim D As Double
paramA = Val(txtParamA.Text)
If paramA = 0 Then
MsgBox "Íóëü â êà÷åñòâå çíà÷åíèÿ ñêîðîñòè íå ïðèíèìàåòñÿ!", _
vbCritical, "ErroR"
Exit Sub
End If
If paramA < 0 Then
MsgBox "Îòðèöàòåëüíîå ÷èñëî êàê çíà÷åíèå ñêîðîñòè íå ïðèíèìàåòñÿ!", _
vbCritical, "ErroR"
Exit Sub
End If
D = paramA * 1000
x1 = (D / 8) / 1024
x2 = (D / 8) / 1024 / 1024
lblX1.Caption = "Êá/ñ: " & Format(x1, "#0.##")
lblX2.Caption = "Ìá/ñ: " & Format(x2, "#0.##")
End Sub
Благодарю за помощь!
Отвечает: Тесленко Евгений Алексеевич
Здравствуйте, Красильников И.П.!
Не допустить ввод нечисловых символов поможет подобный код.
Евгений.
Приложение:
Ответ отправил: Тесленко Евгений Алексеевич (статус: Студент)
Ответ отправлен: 27.02.2008, 20:55 Оценка за ответ: 3 Комментарий оценки: ...
Отвечает: MMAX
Здравствуйте, Красильников И.П.!
ну первое есть такая функция как IsNumeric(Value), возвращает два значения True(цифры) и False (все остальное)
теперь допустим у нас есть текстовое поле Text1
у него есть событие LostFocus - потеря фокуса и GotFocus - получение фокуса
далее на это события вешаем такой код:
Private Sub Text1_LostFocus()
If IsNumeric(Text1.Text) = False Then
Text1.SetFocus '<заместо этого может быть и сообщение, но оно просто возвращает фокус обратно в текстовое поле
End If
End Sub
Private Sub Text1_GotFocus()
'эта процедура сработает тогда когда поле получит фокус
'выделение текста
Text1.SelStart = 0 ' от начала
Text1.SelLength = Len(Text1.Text) 'и до конца
'при вводе нового значения, старое стирается
End Sub
смысл, человек попав в поле, не выйдет из него до тех пор пока не введет число
согласен, не гумано... )))
Ответ отправил: MMAX (статус: 2-ой класс)
Ответ отправлен: 28.02.2008, 15:16 Оценка за ответ: 5 Комментарий оценки: Огромное спасибо, всё получилось!
Отвечает: Черников Игорь Владимирович
Здравствуйте, Красильников И.П.!
Вот Ваше приложение
Удачи!
Приложение:
--------- От каждого по способностям, каждому по труду
Ответ отправил: Черников Игорь Владимирович (статус: 10-ый класс)
Ответ отправлен: 28.02.2008, 16:40 Оценка за ответ: 5 Комментарий оценки: Спасибо!
Вопрос № 125.217
Здравствуйте!
Подскажите пожалуйста макрос Excel для выяснения знака зодиака:
есть ячейки даты рождения (число, месяц, год).
Спасибо.
Колонку E форматируем как дату, туда заносим даты, для которой определяем знак зодиака
Для определенности я начал с E1=29.07.1955
Тогда в F1 напишем формулу
=ВЫБОР(ПОИСКПОЗ(МЕСЯЦ(E1)+ДЕНЬ(E1)/100;$A$1:$A$13;1);$C$1;$C$2;$C$3;$C$4;$C$5;$C$6;$C$7;$C$8;$C$9;$C$10;$C$11;$C$12;$C$13)
и получим наименование знака зодиака для E1
Формула нормально размножается на остальные ячейки F, если даты расположены в E
Очевидно, колонка B в вычислениях не участвует и приводится как справочная.
Предупреждение! Будьте уверены, что Вы правильно ставите разделительные знаки для чисел и дат (запятые или точки). У меня настроены на точки.
Это зависит от Ваших региональных настроек.
В Win XP
Мой комп - Панель управления - Язык и регион станд - Рег параметры - настройка - числа - посмотрите, какой разделитель целой и дробной части.
Мой комп - Панель управления - Язык и регион станд - Рег параметры - настройка - дата - посмотрите, какой разделитель компонентов даты.
У меня Win XP и Office XP
Решение 2
Можно моё же решение 1 переписать, вообще ничего предварительно не надо делать.
Допустим, в A1 дата, тогда, чтобы определить знак зодиака, пишем формулу:
=ВЫБОР(ПОИСКПОЗ(МЕСЯЦ(A1)+ДЕНЬ(A1)/100;{1.01;1.20;2.19;3.21;4.22;5.22;6.22;7.23;8.24;9.23;10.23;11.22;12.22};1);"Козерог";"Водолей";"Рыбы";"Овен";"Телец";"Близнецы";"Рак";"Лев";"Дева";"Весы";"Скорпион";"Стрелец";"Козерог")
Только одна загвоздка- в разных книгах даты зодиака разные :-(
Решение 3
Если Вам принципиально важно, чтобы задача решалась макросом - пишите в форум, сделаю быстро.
--------- Нет времени на медленные танцы!
Ответ отправил: Megaloman (статус: Студент)
Ответ отправлен: 28.02.2008, 09:51 Оценка за ответ: 5