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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.07.2009, 14:33   #1
bud-dy
Пользователь
 
Регистрация: 29.06.2009
Сообщений: 15
По умолчанию Аналог формулы СУММЕСЛИ на VBA

Добрый день.
Есть два листа.

На листе2 введены данные, например:
ячейка а1 558 ячейка в1 100
ячейка а2 557 ячейка в2 200
ячейка а3 558 ячейка в3 300
На листе1 при вводе в ячейку а1 значения 558 в ячейке в1 должна отобразиться сумма из столбца "в" Лист2 по признаку в столбце "а", т.е. сумма должна получиться 400.
Формулой это можно реализовать СУММЕСЛИ, но как сделать на VBA?

Посоветуйте пожалуйста.
bud-dy вне форума Ответить с цитированием
Старый 02.07.2009, 14:43   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Пусть диапазон ограничен 10 строками (для простоты).
Конкретно для ячейки "B1" это так:
Код:
Sheets(1).Activate
With Sheets(2)
    [B1] = Application.SumIf(.[A1:A10], [A1], .[B1:B10])
End With
Необходимые Вам циклы для нужных ячеек и требуемые диапазоны задайте самостоятельно.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 02.07.2009, 15:34   #3
bud-dy
Пользователь
 
Регистрация: 29.06.2009
Сообщений: 15
По умолчанию

Спасибо. Все получилось.

Правда я написал With Worksheets("Лист1") иначе при перемещении листа внутри книги отбиралась неверная информация.
Этого я не знал.
Еще раз спасибо.
bud-dy вне форума Ответить с цитированием
Старый 02.02.2014, 15:30   #4
Karamantak
 
Регистрация: 31.01.2014
Сообщений: 6
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Пусть диапазон ограничен 10 строками (для простоты).
Конкретно для ячейки "B1" это так:
Код:
Sheets(1).Activate
With Sheets(2)
    [B1] = Application.SumIf(.[A1:A10], [A1], .[B1:B10])
End With
Необходимые Вам циклы для нужных ячеек и требуемые диапазоны задайте самостоятельно.
А если разные листы, или даже книги?
У меня такая же задача, все не могу разобраться, как совпадения просуммировать.
Karamantak вне форума Ответить с цитированием
Старый 02.02.2014, 15:43   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

укажите книгу и лист в ней перед самим диапазоном и суммуруйте
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 02.02.2014, 16:11   #6
Karamantak
 
Регистрация: 31.01.2014
Сообщений: 6
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
укажите книгу и лист в ней перед самим диапазоном и суммуруйте
Если не затруднит, помогите с этим вопросом. Буду благодарен.
Ссылка: http://www.programmersforum.ru/showthread.php?t=254233
Karamantak вне форума Ответить с цитированием
Старый 02.02.2014, 16:17   #7
Роман-555
Новичок
Джуниор
 
Регистрация: 25.01.2014
Сообщений: 1
По умолчанию

Добрый день!!!! Подскажите, пожалуйста, столкнулся с такой проблемой, что при заполнении листа Excel не заполнить строку 65000 программа просто виснет... Заполнение идёт из формы через цикл For i = 2 To 65000.
Роман-555 вне форума Ответить с цитированием
Старый 03.02.2014, 06:01   #8
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
Сообщение от Роман-555 Посмотреть сообщение
...Заполнение идёт из формы через цикл For i = 2 To 65000.
А что Вам мешает вместо 65000 использовать 64999 ?

Karamantak См. здесь
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать в VBA аналог формулы екселя. tae1980 Microsoft Office Excel 8 13.04.2009 00:08
Глюк Excel-2007??? Формулы в ячейку из VBA Rafik Microsoft Office Excel 7 24.03.2009 13:59
Помогите по СУММЕСЛИ komar73 Microsoft Office Excel 2 24.01.2009 11:30
Суммесли tsap Microsoft Office Excel 2 17.05.2008 20:22
сложный критерий в суммесли denis71 Microsoft Office Excel 2 01.02.2007 14:44