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

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

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


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

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

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

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

Если не учитывать, что функция ЕСЛИ может работать с массивами, то так:
Код:
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
Сообщений: 450
По умолчанию

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

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

Всем привет!
Подскажите пожалуйста в редактирования кода в макросе, не могу допереть как реализовать.
Код:
    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
Сообщений: 2,786
По умолчанию

Код:
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
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 20.07.2019, 16:53   #9
Tyoma-70
Новичок
Джуниор
 
Регистрация: 20.07.2019
Сообщений: 2
По умолчанию

Цитата:
Сообщение от 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 вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа 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


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS