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

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

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2019, 08:00   #1
Petrov210217
Пользователь
 
Регистрация: 14.11.2018
Сообщений: 89
По умолчанию Что то пошло не так!

Не являюсь специалистом в ВБА, нужен был небольшой макрос, написал с помощью макрорекодера и интернета, но где то что то не так.
Код:
Private Sub CommandButton1_Click()
' первый ход компьютера
If [L8] = 1 Then 
    Range("B5").Select
    Selection.Copy
    Range("I9").Select
    ActiveSheet.Paste

ElseIf [L9] = 2 Then 
    MsgBox "Победа компьютера"
ElseIf [L10] = 3 Then 
    MsgBox "Победа компьютера"
ElseIf [L11] = 4 Then 
    MsgBox "Победа компьютера"
ElseIf [L12] = 5 Then 
    MsgBox "Победа компьютера"
ElseIf [L13] = 6 Then 
    MsgBox "Победа компьютера"
ElseIf [L14] = 7 Then 
    MsgBox "Победа компьютера"
ElseIf [L15] = 8 Then 
    MsgBox "Победа компьютера"
End If
MsgBox "что то пошло не так"

End Sub
При выполнении одного из условий, все равно выскакивает MsgBox, а оно должно выскакивать только если условия выше вообще не выполнены.
ЫЫЫЫЫЫ
Petrov210217 вне форума Ответить с цитированием
Старый 19.05.2019, 08:18   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Код:
End If
MsgBox "что то пошло не так"
Ну так условие закончилось и мессаджебокс вне всяких условий - работает как написано.

Цитата:
Сообщение от Petrov210217 Посмотреть сообщение
а оно должно выскакивать только если условия выше вообще не выполнены.
Так для этого есть ветка Else
p51x на форуме Ответить с цитированием
Старый 19.05.2019, 08:51   #3
Petrov210217
Пользователь
 
Регистрация: 14.11.2018
Сообщений: 89
По умолчанию

Если я убираю строку
Код:
End If
MsgBox "что то пошло не так"
то компилятор ругается. Мне нужно чтобы мессаджебокс срабатывал если нет сработавших условий выше. Я знаю как это сделать на mql4, но здесь так не выходит.
ЫЫЫЫЫЫ
Petrov210217 вне форума Ответить с цитированием
Старый 19.05.2019, 09:20   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Не надо убирать. Надо ДОПИСАТЬ.
https://docs.microsoft.com/en-us/dot...else-statement
Код:
[ Else 
    [ elsestatements ] ]
p51x на форуме Ответить с цитированием
Старый 20.05.2019, 13:44   #5
alex777555
Пользователь
 
Регистрация: 30.07.2018
Сообщений: 19
По умолчанию

красивей смотрится
Код:
Select Case [l8].Value
    Case 1
        'копи-пасте
    Case 2 To 9
        'месага 1
    Case Else
        'месага2
End If
alex777555 вне форума Ответить с цитированием
Старый 20.05.2019, 15:13   #6
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от alex777555 Посмотреть сообщение
красивей смотрится
А чем такая запись будет полезнее, раз у него проверяется не только [L8]
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
"Постапокалиптический" год, или у кого что как пошло))) Алексей_2012 Свободное общение 21 14.12.2013 03:15