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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.08.2015, 08:00   #11
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

Цитата:
конечно, есть решение простое, открывать каждый файл, копировать всю информацию,
Зачем вообще открывать файлы в ексел?
Ведь csv текстовой формат.
Открывать по очереди как текстовой файл
Код:
a=CreateObject("Scripting.FileSystemObject").Getfile(Name).OpenasTextStream(1).ReadAll
А сборный открыть на дописывание (for Append)
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума Ответить с цитированием
Старый 02.08.2015, 11:29   #12
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Объединить все csv в один (согласно названию темы) можно простой командой
copy /b *.* общий.csv
Но в теме задача другая, не совпадает с заголовком темы.
Скопировать диапазон как значения можно через массив, примерно так:
Код:
a=.Resize(.End(xlDown).Row, .End(xlToRight).Column).value
ThisWorkbook.Worksheets(ShtNm(i)).Cells(1).resize(ubound(a),ubound(a,2)).value=a
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 02.08.2015, 18:11   #13
sanych_09
Пользователь
 
Аватар для sanych_09
 
Регистрация: 18.01.2011
Сообщений: 75
По умолчанию

Спасибо за советы. я человек далекий от программирования, уж простите если задаю глупые вопросы...

тему со сборкой информации из разных файлов и разноса их по разным страницам можно закрыть. если есть другие методы (может быть быстрее идет обработка информации) можете поделиться. метод предложенный IgorGO меня устроил на 100%, за это ему отдельное спасибо


Hugo121 прав, нужно было может быть отдельную тему завести, или найти похожую (я видел) и туда свой дополнительный коммент написать. но я решил что так будет легче, так как полный код макроса уже был написан выше. просто хотелось дополнить существующий макрос специальной вставкой: вставить только как значения.

Код:
a=.Resize(.End(xlDown).Row, .End(xlToRight).Column).value
ThisWorkbook.Worksheets(ShtNm(i)).Cells(1).resize(ubound(a),ubound(a,2)).value=a
выдало ошибку Expected Array, может нужно было правильно переменную "a" как-то описать
sanych_09 вне форума Ответить с цитированием
Старый 02.08.2015, 19:11   #14
sanych_09
Пользователь
 
Аватар для sanych_09
 
Регистрация: 18.01.2011
Сообщений: 75
По умолчанию

вроде как заработала формула. и вставляются только значения. Hugo121 спасибо!!!!!!

порылся на форуме и добавил в Dim a(), почему скобки стоят, пока не знаю
нужно было правильно задать переменную "а"

а еще методы есть как можно в макросе сделать так, чтобы вставка была только значений?
Код:
With Workbooks.Open(CuDir & Dir(CuDir & FlNm(i))).Worksheets(1).Cells(1)
      .Resize(.End(xlDown).Row, .End(xlToRight).Column).Copy ThisWorkbook.Worksheets(ShtNm(i)).Cells(1)
sanych_09 вне форума Ответить с цитированием
Старый 02.08.2015, 20:44   #15
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Попробуйте вот так, разбив на две строки:
Код:
 .Resize(.End(xlDown).Row, .End(xlToRight).Column).Copy
ThisWorkbook.Worksheets(ShtNm(i)).Cells(1).PasteSpecial Paste:=xlPasteValues
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 03.08.2015, 13:31   #16
sanych_09
Пользователь
 
Аватар для sanych_09
 
Регистрация: 18.01.2011
Сообщений: 75
По умолчанию

Тоже работает...
но каждый раз вылетает окно..дословно писать не буду: но смысл такой В буфере содержится большой объем данных... сохранить его для следующей вставки...
sanych_09 вне форума Ответить с цитированием
Старый 03.08.2015, 19:49   #17
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Попробуйте завершить код такой строкой:
Код:
Application.CutCopyMode = False
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 04.08.2015, 08:23   #18
Djeki
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 136
По умолчанию

Попробуйте вот так

Код HTML:
Application.DisplayAlerts = False ' вылючаем все предупреждения
Djeki вне форума Ответить с цитированием
Старый 04.08.2015, 10:41   #19
sanych_09
Пользователь
 
Аватар для sanych_09
 
Регистрация: 18.01.2011
Сообщений: 75
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Попробуйте завершить код такой строкой:
Код:
Application.CutCopyMode = False
все работает! спасибо!
sanych_09 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
объединение нескольких файлов в один Pavelasd Microsoft Office Excel 1 01.05.2014 16:08
Объединение однотипных csv файлов myosotis Microsoft Office Excel 4 29.01.2013 23:23
Объединение двух файлов в один kitty19 Общие вопросы C/C++ 4 15.12.2010 15:51
Объединение данных из разных файлов на один лист Комо Microsoft Office Excel 11 22.06.2010 21:26
Macros -- данные из csv файла надо вставить в Excel sasha7676 Microsoft Office Excel 0 28.04.2010 19:14