Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Вычислить значене макросом, а не вставлять формулы на лист - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вычислить значене макросом, а не вставлять формулы на лист (Макросы/Sub)
Вычислить значене макросом, а не вставлять формулы на лист
antycapral Дата: Вторник, 09.06.2015, 11:31 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 62
Репутация: 5 ±
Замечаний: 0% ±

Excel 2016
Всем доброго дня.
Есть хорошая формула "СЧЁТЕСЛИМН"
Далее в коде нужно подсчитать количество по двум критериям, по одному диапазону критерий "аннулирован" , по второму диапазону "ИСТИНА"
Код:
[vba]
Код
Dim Анулированных   
Анулированных = Application.WorksheetFunction.CountIfs(Range("AB7:AB1500"), "аннулирован", Range("AU7:AU1500"), "истина")
[/vba]
При пошаговом выполнении кода через F8 , переменная всегда ноль, то есть не считает
и далее хочу вывести месседж:
[vba]
Код
If Анулированных > 0 Then
MsgBox ("В программе " & Анулированных & " анулированных заказов")
End If
[/vba]

Где допускаю ошибку ?
Файл примера приложен.
Спасибо!
К сообщению приложен файл: __.xlsm (14.8 Kb)


Сообщение отредактировал antycapral - Вторник, 09.06.2015, 11:33
 
Ответить
СообщениеВсем доброго дня.
Есть хорошая формула "СЧЁТЕСЛИМН"
Далее в коде нужно подсчитать количество по двум критериям, по одному диапазону критерий "аннулирован" , по второму диапазону "ИСТИНА"
Код:
[vba]
Код
Dim Анулированных   
Анулированных = Application.WorksheetFunction.CountIfs(Range("AB7:AB1500"), "аннулирован", Range("AU7:AU1500"), "истина")
[/vba]
При пошаговом выполнении кода через F8 , переменная всегда ноль, то есть не считает
и далее хочу вывести месседж:
[vba]
Код
If Анулированных > 0 Then
MsgBox ("В программе " & Анулированных & " анулированных заказов")
End If
[/vba]

Где допускаю ошибку ?
Файл примера приложен.
Спасибо!

Автор - antycapral
Дата добавления - 09.06.2015 в 11:31
Pelena Дата: Вторник, 09.06.2015, 11:41 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19197
Репутация: 4423 ±
Замечаний: ±

Excel 365 & Mac Excel
На листе диапазоны со второй строки начинаются, а не с седьмой, и вместо "истина" напишите True


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеНа листе диапазоны со второй строки начинаются, а не с седьмой, и вместо "истина" напишите True

Автор - Pelena
Дата добавления - 09.06.2015 в 11:41
Manyasha Дата: Вторник, 09.06.2015, 11:41 | Сообщение № 3
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
antycapral, здравствуйте, у Вас диапазоны прописаны с 7-й строчки, а нужно со 2-й. И Вместо Истина / Ложь в VBA пишем True / False
[vba]
Код
Sub test()
     Dim Анулированных
     Анулированных = Application.WorksheetFunction.CountIfs(Range("AB2:AB1500"), "аннулирован", Range("AU2:AU1500"), True)
     If Анулированных > 0 Then
     MsgBox ("В программе " & Анулированных & " анулированных заказов")
     End If
End Sub
[/vba]
К сообщению приложен файл: _1.xlsm (14.8 Kb)


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеantycapral, здравствуйте, у Вас диапазоны прописаны с 7-й строчки, а нужно со 2-й. И Вместо Истина / Ложь в VBA пишем True / False
[vba]
Код
Sub test()
     Dim Анулированных
     Анулированных = Application.WorksheetFunction.CountIfs(Range("AB2:AB1500"), "аннулирован", Range("AU2:AU1500"), True)
     If Анулированных > 0 Then
     MsgBox ("В программе " & Анулированных & " анулированных заказов")
     End If
End Sub
[/vba]

Автор - Manyasha
Дата добавления - 09.06.2015 в 11:41
antycapral Дата: Вторник, 09.06.2015, 11:46 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 62
Репутация: 5 ±
Замечаний: 0% ±

Excel 2016
Pelena, Manyasha, Спасибо! В реальном файле все данные начинаются с 7 строки, сори что поспешил и в примере накосячил :)
И спасибо за "Вместо Истина / Ложь в VBA пишем True / False " hands
 
Ответить
СообщениеPelena, Manyasha, Спасибо! В реальном файле все данные начинаются с 7 строки, сори что поспешил и в примере накосячил :)
И спасибо за "Вместо Истина / Ложь в VBA пишем True / False " hands

Автор - antycapral
Дата добавления - 09.06.2015 в 11:46
_Boroda_ Дата: Вторник, 09.06.2015, 11:46 | Сообщение № 5
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Диапазоны проверьте - не с седьмой строки, а со второй
[vba]
Код
Анулированных = WorksheetFunction.CountIfs(Range("AB2:AB1500"), "аннулирован", Range("AU2:AU1500"), True)
[/vba]

Добавлено.
О! Сколько уже понаписать успели!
Добавлено добавлено
И как-то странно у Вас - где-то "Аннулированных" с двумя "н", а где-то с одной.


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеДиапазоны проверьте - не с седьмой строки, а со второй
[vba]
Код
Анулированных = WorksheetFunction.CountIfs(Range("AB2:AB1500"), "аннулирован", Range("AU2:AU1500"), True)
[/vba]

Добавлено.
О! Сколько уже понаписать успели!
Добавлено добавлено
И как-то странно у Вас - где-то "Аннулированных" с двумя "н", а где-то с одной.

Автор - _Boroda_
Дата добавления - 09.06.2015 в 11:46
antycapral Дата: Вторник, 09.06.2015, 12:10 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 62
Репутация: 5 ±
Замечаний: 0% ±

Excel 2016
_Boroda_, Поспешишь, модераторов насмешишь )))
 
Ответить
Сообщение_Boroda_, Поспешишь, модераторов насмешишь )))

Автор - antycapral
Дата добавления - 09.06.2015 в 12:10
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вычислить значене макросом, а не вставлять формулы на лист (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!