Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 28.01.2013, 19:13   #1
tomdetom
Новичок
 
Регистрация: 28.01.2013
Адрес: Донецк
Сообщений: 2
Репутация: 10
По умолчанию excell, vba

Добрый вечер. В универе препод задал написать функцию ЕСЛИ в vba
Пытаюсь, ничего не выходит. Облазил весь инет.
Помогите, будьте добры
tomdetom вне форума   Ответить с цитированием
Старый 28.01.2013, 21:33   #2
Stilet
Белик Виталий :)
Профессионал
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Адрес: Украина, Донецкая область, г. Краматорск
Сообщений: 57,815
Репутация: 6850
По умолчанию

Дык а в хелпе искал?
__________________
I'm learning to live...
Stilet вне форума   Ответить с цитированием
Старый 28.01.2013, 22:02   #3
doober
Профессионал
 
Аватар для doober
 
Регистрация: 02.05.2009
Адрес: Леса Мордовии
Сообщений: 3,903
Репутация: 650

skype: d_ober1
По умолчанию

Цитата:
Сообщение от tomdetom Посмотреть сообщение
Облазил весь инет.
Помогите, будьте добры
Дырок на коленках нет?
Вот ОНА
__________________
Анализ,обработка данных Недорого
doober вне форума   Ответить с цитированием
Старый 28.01.2013, 22:15   #4
Казанский
Профессионал
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
Репутация: 938
По умолчанию

Если не учитывать, что функция ЕСЛИ может работать с массивами, то так:
Код:
Function ESLI(Optional a = False, Optional b, Optional c = False)
If a Then ESLI = b Else ESLI = c
End Function
Это, правда, не 100% аналог: при вызове без аргументов =ESLI() возвращает ЛОЖЬ, а ввести =ЕСЛИ() Эксель просто не дает.
__________________
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума   Ответить с цитированием
Старый 29.01.2013, 03:29   #5
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Адрес: Russia, Ryazan
Сообщений: 450
Репутация: 132
По умолчанию

держи, IIf()
__________________
Тишина – самый громкий звук
nerv вне форума   Ответить с цитированием
Старый 29.01.2013, 13:03   #6
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Адрес: Russia, Ryazan
Сообщений: 450
Репутация: 132
По умолчанию

http://programmersforum.ru/showthread.php?t=226425
__________________
Тишина – самый громкий звук
nerv вне форума   Ответить с цитированием
Старый 20.07.2019, 14:41   #7
Tyoma-70
Новичок
 
Регистрация: 20.07.2019
Адрес: Сибирь
Сообщений: 2
Репутация: 10
По умолчанию

Всем привет!
Подскажите пожалуйста в редактирования кода в макросе, не могу допереть как реализовать.
Код:
    BazaSheet = "Остатки"
    If (ProtocolSklad.Worksheets(BazaSheet).Cells(48, 5)) Then
        'Копируем остатки
        ProtocolSklad.Worksheets(BazaShee).Cells(40, 4) = BazaBook.Worksheets(BazaSheet).Cells(1, 2)
        ProtocolSklad.Worksheets(BazaShee).Cells(40, 6) = BazaBook.Worksheets(BazaSheet).Cells(2, 2)
    End If
Нужно сделать, что бы было так по формуле: если B48= 1, то строчка = BazaBook.Worksheets(BazaSheet).Cell s(2, 2) , а если B48= 2, то = BazaBook.Worksheets(BazaSheet).Cell s(3, 3)
подскажите, как код должен выглядеть. Заранее спасибо!
Tyoma-70 вне форума   Ответить с цитированием
Старый 20.07.2019, 16:34   #8
Aleksandr H.
2 the Nation Glory
Профессионал
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Адрес: Wild West Ukraine
Сообщений: 2,663
Репутация: 1096
По умолчанию

Код:
If (ProtocolSklad.Worksheets(BazaSheet).Range("B48") = 1) Then
строчка = BazaBook.Worksheets(BazaSheet).Cells(2, 2)
else if (ProtocolSklad.Worksheets(BazaSheet).Range("B48") = 2) 
строчка = BazaBook.Worksheets(BazaSheet).Cells(3, 3)
end if
__________________
Mailto: media.project@ukr.net
Aleksandr H. на форуме   Ответить с цитированием
Старый 20.07.2019, 16:53   #9
Tyoma-70
Новичок
 
Регистрация: 20.07.2019
Адрес: Сибирь
Сообщений: 2
Репутация: 10
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
Код:
If (ProtocolSklad.Worksheets(BazaSheet).Range("B48") = 1) Then
строчка = BazaBook.Worksheets(BazaSheet).Cells(2, 2)
else if (ProtocolSklad.Worksheets(BazaSheet).Range("B48") = 2) 
строчка = BazaBook.Worksheets(BazaSheet).Cells(3, 3)
end if
Попробовал не работает. Извиняюсь, что дезинформировал, но надо, вот так:
Код:
    If (ProtocolSklad.Worksheets(BazaSheet).Cells(48, 5)) Then
        'Копируем остатки
        ProtocolSklad.Worksheets(BazaShee).Cells(40, 4) = BazaBook.Worksheets(BazaSheet).Cells(1, 2)      ' Оставить как есть
А уже после, была функция условия: Если ячейка B48 =1, то
        ProtocolSklad.Worksheets(BazaShee).Cells(40, 6) = BazaBook.Worksheets(BazaSheet).Cells(2, 2)
Если ячейка B48 =2, то
        ProtocolSklad.Worksheets(BazaShee).Cells(40, 6) = BazaBook.Worksheets(BazaSheet).Cells(3, 2)
    End If

Последний раз редактировалось Tyoma-70; 20.07.2019 в 17:11. Причина: Уточнения
Tyoma-70 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа VBA в Excell ДМИТРИЙ1234 Помощь студентам 0 24.11.2011 12:10
Метод Рунге-Кутта на VBA в Excell sergeib7 Microsoft Office Excel 5 25.04.2011 16:43
работа с формами в VBA Excell Niк Microsoft Office Excel 4 17.06.2010 20:15
Excell asv193 Общие вопросы C/C++ 0 08.05.2009 21:06
Программно график VBA Excell Kvant Microsoft Office Excel 2 30.10.2008 19:56


16:42.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.