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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2015, 14:59   #21
hemmel
Пользователь
 
Регистрация: 14.01.2015
Сообщений: 20
По умолчанию

во вложении пример таблицы.
С выбором файла, таблицы и строки мне более менее понятно. С выводом данных из таблицы не понимаю(
Вложения
Тип файла: zip 2.zip (7.6 Кб, 13 просмотров)
hemmel вне форума Ответить с цитированием
Старый 05.06.2015, 15:20   #22
27102014
Форумчанин
 
Регистрация: 27.10.2014
Сообщений: 248
По умолчанию

Проверьте выпадающий список - у Вас в нем русские буквы, а в файлах английские - нужно чтобы везде было одинаково.
Проверил свой вариант - все нормально отработало, значит тогда все сделал правильно.
Итак, давайте разберем
Код:
Set WS = Workbooks("пример для подгрузки данных").Sheets("Лист1")
Здесь указана переменная WS - ссылка на лист, в который нам нужно подтянуть данные из таблиц, это Лист1. Сделано это чтобы не прописывать полный адрес ячейки - Вам бы почитать об этом подробнее.
Постараюсь объяснить далее

Сам цикл
Код:
 For i = 11 To R 'на Листе 1 от ячейки А11 до последней
d = stroka 'переменная, номер строки в которой мы нашли имя таблицы

    For a = d To 100 ' задание цикла от номера строки с именем таблицы до 100(просто число, предположил максимальный размер таблицы

' самое главное - условие отбора на примере i=11
'If WS.Cells(11, 1) (ячейка А11)  & "." & WS.Cells(i, 3)(ячейка С11) = Cells(d + 1, 1) следующая строка после ячейки с именем таблицы по столбцу, например, имя таблицы в А1, то проверяем А2 А:А Then

                    If WS.Cells(i, 1) & "." & WS.Cells(i, 3) = Cells(d + 1, 1) Then
   'если равны, то перенести значение                 
WS.Cells(i, 4) = Cells(d + 1, stolb)

'перейти к следующей i (строка 12) на Листе1
GoTo AAA

'если не равны, то проверить следующую ячейку,например, А3
Else: d = d + 1

                    End If
         
    
    Next d 'следующая строка в таблице

AAA: Next i 'следующая строка на Листе1
27102014 вне форума Ответить с цитированием
Старый 05.06.2015, 15:24   #23
27102014
Форумчанин
 
Регистрация: 27.10.2014
Сообщений: 248
По умолчанию

По
Код:
Set WS = Workbooks("пример для подгрузки данных").Sheets("Лист1")

WS.Cells(i, 1) можно записать иначе как
Workbooks("пример для подгрузки данных").Sheets("Лист1").Cells(i, 1)
т.е. Книга - Лист - Ячейка

Что Cells (2,1) это ячейка А2 Вам понятно? 2-номер строки, 1-номер столбца
27102014 вне форума Ответить с цитированием
Старый 07.06.2015, 01:08   #24
hemmel
Пользователь
 
Регистрация: 14.01.2015
Сообщений: 20
По умолчанию

Цитата:
Сообщение от 27102014 Посмотреть сообщение
По [CODE]
Что Cells (2,1) это ячейка А2 Вам понятно?
Да, это мне понятно.
Возникает ошибка. Строчка с ошибкой указана на скриншоте.
Завтра с утра подумаю о возможных причинах возникновения этой ошибки

hemmel вне форума Ответить с цитированием
Старый 07.06.2015, 10:49   #25
hemmel
Пользователь
 
Регистрация: 14.01.2015
Сообщений: 20
По умолчанию

Сегодня ошибка с предыдущего моего сообщения не возникала. Макрос отработал без ошибок, но значения из файла с таблицей в файл с формуляром не перенес.
hemmel вне форума Ответить с цитированием
Старый 08.06.2015, 08:27   #26
27102014
Форумчанин
 
Регистрация: 27.10.2014
Сообщений: 248
По умолчанию

С рабочего компьютера не вижу картинки

Если значения не подтянулись, значит дело в самих значениях. Может их просто нет в таблице, может нет даты или данные в таблице на английском, а Вы ищите русские буквы. "х" и "x" - сможете сказать какая из них латинская буква?

Сделайте таблицу, в которой точно есть данные, которые нужно перенести (я обычно беру цифры от 1 до нужного количества по порядку) и ищу ошибки при работе макроса.

Предполагаю, что вся проблема в поиске условия "1.х" и т.д. - попробуйте в формуляр вставить буквы из таблиц через копирование
27102014 вне форума Ответить с цитированием
Старый 08.06.2015, 10:11   #27
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

hemmel,
Вас не смущает тот факт, что задача уже описана
Цитата:
максимально доступно
а решения все нет?

между Вашим "максимально доступно" и нашим "все понятно" - пока непреодолимая пропасть
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 08.06.2015, 11:05   #28
27102014
Форумчанин
 
Регистрация: 27.10.2014
Сообщений: 248
По умолчанию

Игорь, не будьте таким строгим

Задача, насколько я ее понимаю, решена, осталось только подправить критерии файла формуляр

Уважаемый hemmel уже близок к решению своей проблемы
27102014 вне форума Ответить с цитированием
Старый 08.06.2015, 11:32   #29
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

я не строг, я обьективен.

как Вам это:
Цитата:
3. Данные подгрузились в формуляр.
перефразировать данное "доступное" описание можно так:
3. Данные чудесным способом подгрузились в формуляр.

и теперь кадждому понятно:
заходим на сайт WWW.ЗагрузкаДанныхВФормуляр.com - там описаны все необходимые действия

а между понятиями "решение близко" и "решение уже есть" - существенная разница.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 08.06.2015 в 12:37.
IgorGO вне форума Ответить с цитированием
Старый 08.06.2015, 12:33   #30
27102014
Форумчанин
 
Регистрация: 27.10.2014
Сообщений: 248
По умолчанию

Смотрите, задача такая
Имеется выгрузка из программы, всего 20 документов Excel, данные обновляются ежедневно. В каждом файле набор таблиц, они называются А100, В100 и т.д. Строки таблицы находятся строго в столбце А:А (название тоже) - показатели "1.х", "1.А", и др., столбцы таблицы (начиная с В:В) - даты выгрузки.

Задача - нужно сделать документ Excel (21й в папке - формуляр), в котором бы была возможность подтягивать данные из:
1) нужной выгрузки из программы - определенный документ Excel
2) нужной таблицы - А100 или В100
3) нужной даты - например, сегодня 08.06.2015

В формуляре содержится таблица, в которую переносятся данные из выгрузок - эта таблица содержит все возможные варианты показателей ("1.х", "1.А", и др., ).
Нужно чтобы в формуляре в таблице напротив ячейки с "1.А" подтянулось значение из выгрузки из найденной там таблицы А100 или В100 значение напротив строки в столбце А:А с показателем "1.А" из столбца с нужной даты
27102014 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перенос данных с одного листа на другой по условию diop Microsoft Office Excel 3 21.01.2015 01:33
Перенос данных с одного листа на другой по условию MickMick Microsoft Office Excel 1 11.01.2015 17:33
Сумма диапазона ячеек листов другой книги по условию. Ammat Microsoft Office Excel 8 12.06.2014 17:18
Перенос данных из закрытой книги по условию strannick Microsoft Office Excel 14 14.12.2013 16:29
Запись данных в закрытую/скрытую из UserForm другой открытой книги книги. Dark Victor Microsoft Office Excel 1 12.03.2012 18:37