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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2009, 14:06   #1
sttafi
Пользователь
 
Регистрация: 12.05.2009
Сообщений: 18
По умолчанию подсчет суммы ячеек с разных страниц при выполнении условия

есть 2 таблице на листе1 и листе 2. Нужно написать след программу:
в столбце С листа1 должна быть разница столбца В листа 1 и столбца В листа 2 если данные в ячейках столбца А листа 1и 2 совпадают.


Private Sub Worksheet_Activate()
i = 1
Do While Cells(i, 1) <> ""
If Sheets("Лист1").Cells(i, 1).Text = Sheets("Лист2").Cells(i, 1).Text Then
Sheets("Лист1").Cells(i, 1) = Val(Sheets("Лист1").Cells(i, 2)) - Val(Sheets("Лист2").Cells(i, 2))
End If
Loop
i = i + 1
End Sub


выдает ошибку
sttafi вне форума Ответить с цитированием
Старый 16.05.2009, 14:25   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

А чем Вас формулы не устраивают?
EducatedFool вне форума Ответить с цитированием
Старый 16.05.2009, 14:36   #3
sttafi
Пользователь
 
Регистрация: 12.05.2009
Сообщений: 18
По умолчанию

а как это формулами реализовать?
sttafi вне форума Ответить с цитированием
Старый 16.05.2009, 14:47   #4
IFRSoff
Форумчанин
 
Аватар для IFRSoff
 
Регистрация: 23.02.2009
Сообщений: 306
По умолчанию

=ЕСЛИ(Лист1!A1=Лист2!A1;Лист1!B1-Лист2!B1;0)
Лень - двигатель прогресса!
IFRSoff вне форума Ответить с цитированием
Старый 16.05.2009, 14:57   #5
sttafi
Пользователь
 
Регистрация: 12.05.2009
Сообщений: 18
По умолчанию

...я наверно неправильно объснила...если А1 листа1 = А1 листа 2 то да...
с листа 2 из столбца А программа ищет совпадающие ячейки на листе 1 столбца А и при совпадении выполняется "-". то есть необязательно ,что А1листа1 равно А1 листа 2 может получиться так, что она будет равна ну например А6 или А9 листа 2...
sttafi вне форума Ответить с цитированием
Старый 16.05.2009, 15:01   #6
IFRSoff
Форумчанин
 
Аватар для IFRSoff
 
Регистрация: 23.02.2009
Сообщений: 306
По умолчанию

Ну не правильно объяснила А отнимать что? Ячейки, которые расложены в столбце B напротив одинакоых ячеек столбца А? Т.е. Если А1 = А6, то В1-В6, верно? Значения в столбце А уникальны?
Лень - двигатель прогресса!
IFRSoff вне форума Ответить с цитированием
Старый 16.05.2009, 15:09   #7
sttafi
Пользователь
 
Регистрация: 12.05.2009
Сообщений: 18
По умолчанию

да =)))) если А1листа1=А6листа2 то на листе1 в ячейке С1 = В1 листа 1-В6 (листа2)....и так нужно проверить весь лист 2
sttafi вне форума Ответить с цитированием
Старый 16.05.2009, 15:10   #8
IFRSoff
Форумчанин
 
Аватар для IFRSoff
 
Регистрация: 23.02.2009
Сообщений: 306
По умолчанию

{=ЕСЛИ(ИЛИ(Лист2!A:A=Лист1!A1);Лист 1!B1-ВПР(Лист1!A1;Лист2!A:B;2;0))} - формула массива
=ЕСЛИ(ПОИСКПОЗ(A1;Лист2!A:A;0);Лист 1!B1-ВПР(Лист1!A1;Лист2!A:B;2;0)) - обычная формула
Лень - двигатель прогресса!
IFRSoff вне форума Ответить с цитированием
Старый 16.05.2009, 15:11   #9
sttafi
Пользователь
 
Регистрация: 12.05.2009
Сообщений: 18
По умолчанию

спасибо а как нужно исправить мой код, чтобы он заработал ( очень интересно )
sttafi вне форума Ответить с цитированием
Старый 16.05.2009, 15:12   #10
IFRSoff
Форумчанин
 
Аватар для IFRSoff
 
Регистрация: 23.02.2009
Сообщений: 306
По умолчанию

Не знаю как
Лень - двигатель прогресса!
IFRSoff вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсчет суммы в DBGrid girz БД в Delphi 3 16.05.2009 14:11
подсчет ячеек в зависимости от даты Алексей777 Microsoft Office Excel 4 20.02.2009 13:48
Подсчет суммы Kardi PHP 0 23.11.2008 16:46
Удалить строку листа Excel при выполнении условия Gennady Microsoft Office Excel 14 18.12.2007 13:54