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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.07.2010, 21:18   #1
artemiyiva
Новичок
Джуниор
 
Регистрация: 26.07.2010
Сообщений: 4
По умолчанию Перенос данных по таблицам с группировкой

Нужна помощь!
Помогите сделать макрос, всю голову сломал, ошибку в чтении критериев выдает, есть болванка, нужно доработать:

Sub ПереносДанных()
Код:
Dim A, D As Integer
For D = 5 To 2283
For A = 5 To 1911
If Cells(A, 2) = Cells(D, 18) And Cells(A, 3) = Cells(D, 19) And Cells(A, 4) = Cells(D, 20) And Cells(A, 5) = Cells(D, 21) And Cells(A, 6) = Cells(D, 22) And Cells(A, 7) = Cells(D, 23) Then
Cells(A, 11) = Cells(A, 11) + Cells(D, 24)
Cells(A, 12) = Cells(A, 12) + Cells(D, 25)
Cells(D, 26) = "A"
Cells(D, 27) = "B"
End If
Next A
Next D
End Sub
Необходимо по данным таблицы "А" по столбцам А,D,E,F найти такие же в таблице "В" по столбцам A1, D1, E1, F1 суммировать суммы одинаковых по R и подставить в столбец "1"

Последний раз редактировалось Stilet; 28.07.2010 в 10:40.
artemiyiva вне форума Ответить с цитированием
Старый 27.07.2010, 21:54   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Файл выкладывайте.

Зачем макрос - чем не устраивают формулы?
Какую ошибку выдаёт ваш макрос?
Наверное, на одной из этих строк:
Код:
Cells(A, 11) = Cells(A, 11) + Cells(D, 24)
Cells(A, 12) = Cells(A, 12) + Cells(D, 25)
Попробуйте так:
Код:
Sub ПереносДанных()
    Dim A As Integer, D As Integer: Application.ScreenUpdating = False
    For D = 5 To 2283
        For A = 5 To 1911
            If Cells(A, 2) = Cells(D, 18) And Cells(A, 3) = Cells(D, 19) _
               And Cells(A, 4) = Cells(D, 20) And Cells(A, 5) = Cells(D, 21) _
               And Cells(A, 6) = Cells(D, 22) And Cells(A, 7) = Cells(D, 23) Then
                Cells(A, 11) = Val(Cells(A, 11)) + Val(Cells(D, 24))
                Cells(A, 12) = Val(Cells(A, 12)) + Val(Cells(D, 25))
                Cells(D, 26) = "A": Cells(D, 27) = "B"
            End If
        Next A
    Next D
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 27.07.2010, 22:36   #3
artemiyiva
Новичок
Джуниор
 
Регистрация: 26.07.2010
Сообщений: 4
По умолчанию

C загрузкой таблицы какие-то проблемы...

Нет, ошибку выдает на:
If Cells(A, 2) = Cells(D, 18) And Cells(A, 3) = Cells(D, 19) And Cells(A, 4) = Cells(D, 20) And Cells(A, 5) = Cells(D, 21) And Cells(A, 6) = Cells(D, 22) And Cells(A, 7) = Cells(D, 23) Then

По идее здесь должны быть несколько показателей:

If Cells(A, 4) = Cells(А1, 4) And Cells(D, 4) = Cells(D1, 4) And Cells(E, 4) = Cells(E1, 4) And Cells(F, 4) = Cells(F1, 4) Then

Так понимаю это условие, а следущую формулу я вообще не понимаю;

Cells(A, 11) = Cells(A, 11) + Cells(D, 24)
Cells(A, 12) = Cells(A, 12) + Cells(D, 25)

Тут должен быть свод при выполнении условия
artemiyiva вне форума Ответить с цитированием
Старый 27.07.2010, 22:51   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
C загрузкой таблицы какие-то проблемы...
Не, пожалуй, тут проблема скорее в неверном подходе к решению задачи...

Хотите получить готовое решение, или, по крайней мере, рекомендации по его осуществлению?
Тогда перечитайте это:
Цитата:
Файл выкладывайте.
Зачем макрос - чем не устраивают формулы?
EducatedFool вне форума Ответить с цитированием
Старый 27.07.2010, 23:28   #5
artemiyiva
Новичок
Джуниор
 
Регистрация: 26.07.2010
Сообщений: 4
По умолчанию

Формулы - это замечательно, если бы можно было, я бы в макросы не лез. Пытался через Промежуточные итоги сделать, а потом ВПРом подставить, но условия по нескольким столбцам, не вариант, он мне по первому только ставит.
artemiyiva вне форума Ответить с цитированием
Старый 28.07.2010, 09:30   #6
vikttur
Участник клуба
 
Регистрация: 16.05.2010
Сообщений: 1,249
По умолчанию

Цитата:
Сообщение от artemiyiva Посмотреть сообщение
Формулы - это замечательно, если бы можно было...
Попытка №3:
Цитата:
Файл выкладывайте.
vikttur вне форума Ответить с цитированием
Старый 28.07.2010, 10:33   #7
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

И вообще, имхо тут тоже надо делать на массивах, как http://www.programmersforum.ru/showt...=108262&page=2, чувствую, что задача похожа. Будет отрабатывать за доли секунды.
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 28.07.2010 в 10:39.
Hugo121 вне форума Ответить с цитированием
Старый 28.07.2010, 23:14   #8
artemiyiva
Новичок
Джуниор
 
Регистрация: 26.07.2010
Сообщений: 4
По умолчанию

Вот таблица, наконец-то получилось выложить
Вложения
Тип файла: rar Таблицы.rar (20.2 Кб, 13 просмотров)
artemiyiva вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение данных и перенос данных из одной таб в другую Kot9ra Microsoft Office Access 13 02.07.2010 12:22
перенос данных seriousMalish SQL, базы данных 2 27.05.2010 09:27
Создание из двух таблиц одной, с группировкой данных в соответствии с датами (Exl 2003) olegur Microsoft Office Excel 4 01.04.2010 06:08
сортировка данных (пересчет возможных вариантов комбинаций, перенос данных в таблицу) Vitalik85 Microsoft Office Excel 4 12.08.2009 00:30
Перенос данных Technolog Microsoft Office Excel 5 27.03.2009 10:45