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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.01.2013, 17:21   #1
Paramount
Пользователь
 
Регистрация: 14.12.2011
Сообщений: 31
Вопрос Консолидация отдельных полей отдельных файлов на один лист

Всем доброго времени суток. Вот уже который день парюсь над одним вопросом:
Мне необходимо написать макрос, при использовании которого определенные столбцы (напр. С1, С2, С3 и т.д.) копировались бы в отдельную книгу на определенные места. Вся загвоздка в том, что я не знаю как указать именно путь к книге с заданным именем, например Workbooks("[Clients.xslx]"). Пробовал разными способами, но увы
Для удобства напишу скрипт как я его понимаю
Sub ()
Workbooks (C:\Direction1\[Clients.xlsx]).Sheets("Лист1").Range("F2:F50000" ).Copy
' Важно!: необходимо именно скопировать, а не использовать FormulaArray=
Workbooks (C:\Direction2\[Test.xlsx]).Sheets("Test1").Range("A2:A50000" ).Paste


End Sub



Заранее всем спасибо за ответы, друзья!
Paramount вне форума Ответить с цитированием
Старый 10.01.2013, 17:39   #2
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию

Paramount, возможно две ситуации:
  1. книга, из которой надо взять данные, не октрыта;
  2. книга, из которой надо взять данные, открыта.
Чтобы взять данные из книги, используя стандартные команды, нужно книгу сначала открыть.
Можно взять данные из книги, не открывая книгу, но я не знаю, как это делать.

Если будете использовать стандартные команды и брать данные из открытой книги, то код будет примерно такой:
Код:
Workbooks("Clients.xlsx").Sheets("Лист1").Range("F2:F50000" ).Copy
Обратите внимание, что в скобках после слова "Workbooks" путь книги не указывается, т.к. не может быть открыто одновременно более одной книги с одинаковым именем и нужная книга определяется по имени файла.
Имя книги в скобках пишется в кавычках.
Скрипт вне форума Ответить с цитированием
Старый 10.01.2013, 17:42   #3
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Как получить данные из закрытой книги?
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 10.01.2013, 17:44   #4
Paramount
Пользователь
 
Регистрация: 14.12.2011
Сообщений: 31
По умолчанию

Цитата:
Сообщение от Скрипт Посмотреть сообщение
Paramount, возможно две ситуации:
  1. книга, из которой надо взять данные, не октрыта;
  2. книга, из которой надо взять данные, открыта.
Как из открытой я и так знаю )
Спасибо
Есть еще вариант, когда скрипт сам вначале открывает заданную книгу с путём к ней, копирует и закрывает, но это совсем крайний вариант, не совсем приемлимый.
Paramount вне форума Ответить с цитированием
Старый 11.01.2013, 01:23   #5
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию

Посмотрите вот тут http://programmersforum.ru/showthread.php?t=207819, может что подойдет
strannick вне форума Ответить с цитированием
Старый 11.01.2013, 19:22   #6
gling
Форумчанин
 
Регистрация: 23.01.2010
Сообщений: 261
По умолчанию

МОЖЕТ ЕСТЬ СМЫСЛ СОЗДАТЬ ЛИСТ В КНИГЕ ОТЧЕТА С ФОРМУЛАМИ КОПИРОВАНИЯ ИЗ ТРЕБУЕМОЙ КНИГИ. ПРИ НЕОБХОДИМОСТИ МОЖНО ОБНОВЛЯТЬ СВЯЗИ ИЛИ НЕ ОБНОВЛЯТЬ. А В КНИГЕ ОТЧЕТА ДЕЛАЙТЕ ВСЕ КАК НАДО.
gling вне форума Ответить с цитированием
Старый 11.01.2013, 23:18   #7
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Сообщений: 450
По умолчанию

Цитата:
Сообщение от gling Посмотреть сообщение
МОЖЕТ ЕСТЬ СМЫСЛ СОЗДАТЬ ЛИСТ В КНИГЕ ОТЧЕТА С ФОРМУЛАМИ КОПИРОВАНИЯ ИЗ ТРЕБУЕМОЙ КНИГИ. ПРИ НЕОБХОДИМОСТИ МОЖНО ОБНОВЛЯТЬ СВЯЗИ ИЛИ НЕ ОБНОВЛЯТЬ. А В КНИГЕ ОТЧЕТА ДЕЛАЙТЕ ВСЕ КАК НАДО.
капс заело?
Тишина – самый громкий звук
nerv вне форума Ответить с цитированием
Старый 12.01.2013, 00:13   #8
gling
Форумчанин
 
Регистрация: 23.01.2010
Сообщений: 261
По умолчанию

НЕ ПОНЯЛ ВОПРОСА.
gling вне форума Ответить с цитированием
Старый 12.01.2013, 23:36   #9
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Цитата:
Сообщение от gling Посмотреть сообщение
НЕ ПОНЯЛ ВОПРОСА.
На форумах считается дурным тоном писать все сообщение заглавными буквами. Т.к. это не телефон, то все эмоции передаются посредством букв и смайлов. А заглавные означают КРИК. Вы кому сейчас кричите? К тому же такой текст весьма неудобно читать. А на многих форумах это вообще запрещено.

Надеюсь, что так понятнее.
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 13.01.2013, 11:35   #10
gling
Форумчанин
 
Регистрация: 23.01.2010
Сообщений: 261
По умолчанию

Понятно, а я думал что так удобнее и лучше видно. В правилах про это ничего не сказано. Теперь буду знать про крик.
gling вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разбить файл XLSX на несколько отдельных файлов hron66 Общие вопросы Delphi 2 21.09.2012 11:06
Очищение отдельных Edit полей. Mrsqler Общие вопросы Delphi 9 25.03.2012 19:29
Сохранение текста типа Memo без создания отдельных файлов Haladdin БД в Delphi 23 30.12.2010 13:14
Построение отдельных кадров Woodyy Паскаль, Turbo Pascal, PascalABC.NET 0 25.05.2010 15:29
Как выводить значения отдельных полей таблицы при выборе записи в DBGrid Sinker БД в Delphi 9 25.03.2009 12:28