Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Office Новый топик    Ответить
 SumIf - VBA  [new]
GioCH
Guest
Пивет Всем и С Наступающим НОВЫМ ГОДОМ!!!!

Друзья, у меня след. Вопрос к вам - есть формула в лист1 а дааные в лист2 данные Proba, Crit, Data, когда открываетсья лист1 должна сработать формула (1) но к сожалению выдаётся сообщ. - Compile error: Invalid qualifer.

Cells(2, 1).Value = Application.WorksheetFunction.SumIf(Proba, Crit, data).Value

Подскажите где тут глюк
28 дек 06, 14:17    [3593044]     Ответить | Цитировать Сообщить модератору
 Re: SumIf - VBA  [new]
vkodor
Member

Откуда: Moscow
Сообщений: 1823
GioCH
Пивет Всем и С Наступающим НОВЫМ ГОДОМ!!!!

Друзья, у меня след. Вопрос к вам - есть формула в лист1 а дааные в лист2 данные Proba, Crit, Data, когда открываетсья лист1 должна сработать формула (1) но к сожалению выдаётся сообщ. - Compile error: Invalid qualifer.

Cells(2, 1).Value = Application.WorksheetFunction.SumIf(Proba, Crit, data).Value

Подскажите где тут глюк


Proba, Crit, data - это название столбцов? Или диапазонов?
второй аргумент функции SumIf д.б. условием
разверни Proba, Crit, data
28 дек 06, 14:57    [3593336]     Ответить | Цитировать Сообщить модератору
 Re: SumIf - VBA  [new]
lena_####
Member

Откуда:
Сообщений: 272
GioCH

Прежде всего я бы убрала Value после SumIf (компилятор ругается именно поэтому)
Cells(2, 1).Value = Application.WorksheetFunction.SumIf(Proba, Crit, data)
Во вторых, функция SumIf хочет уж по крайней мере в качестве первого аргумента (в Вашем случае это Proba) получить объект Range. Если у Вас в переменной Proba храниться ссылка на соответствующий Range, то это здорово. Если же нет, то это не здорово. Если Proba – именованный диапазон, то правильней вместо Proba писать Range(“Proba”).
28 дек 06, 15:04    [3593391]     Ответить | Цитировать Сообщить модератору
 Re: SumIf - VBA  [new]
lena_####
Member

Откуда:
Сообщений: 272
GioCH

Это по поводу аргументов функции SumIf:

Картинка с другого сайта.
28 дек 06, 15:22    [3593540]     Ответить | Цитировать Сообщить модератору
 Re: SumIf - VBA  [new]
GioCH
Guest
Спасибо Друзья за отклики! (Особенно Лене!!!)
Proba, Crit, Data - Колонки (Они находятся на другом листе). Proba - где надо выбрать по Crit, а Data что сумыровать по Crit, по моему так?, а развернуть как Data, Crit, Proba?
Я попробую как Вы советовали. Это просто тест для работы чтобы автоматизировать выборку данных из больших таблиц.
28 дек 06, 16:08    [3593864]     Ответить | Цитировать Сообщить модератору
 Re: SumIf - VBA  [new]
Ser Artur
Member

Откуда: Armenia
Сообщений: 1118


К сообщению приложен файл (SumIf itog.rar - 8Kb) cкачать
28 дек 06, 16:23    [3593997]     Ответить | Цитировать Сообщить модератору
 Re: SumIf - VBA  [new]
GioCH
Guest
Ser Artur океан благодарности!!! это то что надо!!!
28 дек 06, 17:38    [3594465]     Ответить | Цитировать Сообщить модератору
 Re: SumIf - VBA  [new]
Ser Artur
Member

Откуда: Armenia
Сообщений: 1118
Если хотите могу выслат тоже самое но с SUPRODUCT, которая более эфективна при помоши неё можно задат n-ое кол-во параметров
29 дек 06, 11:19    [3596750]     Ответить | Цитировать Сообщить модератору
 Re: SumIf - VBA  [new]
Ser Artur
Member

Откуда: Armenia
Сообщений: 1118
Вместо выслат и задат нужно выслать, и задать "ь" не работает
29 дек 06, 11:21    [3596766]     Ответить | Цитировать Сообщить модератору
 Re: SumIf - VBA  [new]
GioCH
Guest
Ser Artur буду очень благодарен, мой Емаил - giorgich@Gmail.ru или Giorgich@pochta.ru

Спасибо и с наступающим новым годом!!!
29 дек 06, 15:28    [3598384]     Ответить | Цитировать Сообщить модератору
 Re: SumIf - VBA  [new]
Ser Artur
Member

Откуда: Armenia
Сообщений: 1118
Mmounth - имя диапазона поиска месяца (Sheet2!A2:A65536)
mmm - имя месяца (Sheet1!A1)
tovar - имя диапазона поиска товара (Sheet2!B2:B35536)
RC[-2] - имя товара на листе (Sheet1!A2:A35536)
summa - имя диапазона суммы товара (Sheet2!C2:C65536)

ТО БИШЬ Имеем
на листе
Sheet2 вводим по колонке
А2:А65536 - месяцы прихода товара
B2:B35536 - наименования товаров
C2:C65536 - их суммы
на листе Sheet1 в яйчейке А1 вписываем месяц для которого нужно обобщить наши приходы
и жмём кнопку которая находится на листе Sheet1
код кнопки прилагается
Private Sub CommandButton1_Click()
Worksheets("Big Book").Range("F7:F20").Formula = "=SUMPRODUCT((Mmounth = mmm)*(tovar=RC[-2])*(summa))"
End Sub

P.S.
Я надеюс Вы знаете как присвоить имя яйчейке или диапазону яйчеек. Если(If) да то(Then) поясню для других, в смысле новичков. Активируем яйчейку или диапазон яйчеек входим Insert>Nae>Define> в поле Names in Workbook и присваиваем имя яйчейке или диапазону яйчеек
С наступающим Вас новым годом, к счястью 2007-ым
30 дек 06, 11:15    [3599967]     Ответить | Цитировать Сообщить модератору
 Re: SumIf - VBA  [new]
Ser Artur
Member

Откуда: Armenia
Сообщений: 1118
Пардон вместо Worksheets("Big Book")
Worksheets("Sheet1")
30 дек 06, 11:17    [3599972]     Ответить | Цитировать Сообщить модератору
 Re: SumIf - VBA  [new]
Ser Artur
Member

Откуда: Armenia
Сообщений: 1118
Опять 25
Worksheets("Big Book").Range("F7:F20")

Worksheets("Sheet1").Range("B2:B65536")
автор
на листе Sheet1 в яйчейке А1 вписываем месяц для которого нужно обобщить наши приходы и жмём кнопку которая находится на листе Sheet1

а в яйчейках А2:A65536 того же листа вписываем товары
30 дек 06, 11:20    [3599978]     Ответить | Цитировать Сообщить модератору
 Re: SumIf - VBA  [new]
GioCH
Guest
OK Ser Artur!
30 дек 06, 23:45    [3600830]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Office Ответить
 
Лучший учебный центр Microsoft!
Новейшие курсы Microsoft SQL Server 2014!
Статус Academy Oracle. Очень привлекательные цены на курсы Oracle!
Отсрочка платежа или скидка 5% на комплексные программы!