Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Объединение нескольких листов в один - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Объединение нескольких листов в один (Макросы/Sub)
Объединение нескольких листов в один
uchenik Дата: Вторник, 03.03.2015, 14:15 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Всем, добрый день.
Возник довольно известный вопрос, но решения не удалось найти, перепробовал различные предложенные макросы, но они не совсем справляются с заданием...

Имеется несколько листов с простенькой таблицей заданного вида, данные в ячейки подхватываются из другого файла в виде формулы
Код
=IF(ISBLANK([store_DB-test100-9.xlsx]store_DB!D2);"";([store_DB-test100-9.xlsx]store_DB!P2))



макрос осиливает только первый лист, остальные листы он добавляет, но меняет номера ячеек в формулах... соответственно результат слияния совершенно неверный


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

[vba]
Код
Sub Combine()
Dim J As Integer
On Error Resume Next
Sheets(1).Select
Worksheets.Add
Sheets(1).Name = "oc_filter"
Sheets(2).Activate
Range("A1").EntireRow.Select
Selection.Copy Destination:=Sheets(1).Range("A1")
For J = 2 To Sheets.Count
Sheets(J).Activate
Range("A1").Select
Selection.CurrentRegion.Select
Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select
Selection.Copy Destination:=Sheets(1).Range("A65536").End(xlUp)(2)
Next
End Sub
[/vba]
К сообщению приложен файл: DB_oc_filter_he.xls (63.0 Kb)


Сообщение отредактировал uchenik - Вторник, 03.03.2015, 15:35
 
Ответить
СообщениеВсем, добрый день.
Возник довольно известный вопрос, но решения не удалось найти, перепробовал различные предложенные макросы, но они не совсем справляются с заданием...

Имеется несколько листов с простенькой таблицей заданного вида, данные в ячейки подхватываются из другого файла в виде формулы
Код
=IF(ISBLANK([store_DB-test100-9.xlsx]store_DB!D2);"";([store_DB-test100-9.xlsx]store_DB!P2))



макрос осиливает только первый лист, остальные листы он добавляет, но меняет номера ячеек в формулах... соответственно результат слияния совершенно неверный


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

[vba]
Код
Sub Combine()
Dim J As Integer
On Error Resume Next
Sheets(1).Select
Worksheets.Add
Sheets(1).Name = "oc_filter"
Sheets(2).Activate
Range("A1").EntireRow.Select
Selection.Copy Destination:=Sheets(1).Range("A1")
For J = 2 To Sheets.Count
Sheets(J).Activate
Range("A1").Select
Selection.CurrentRegion.Select
Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select
Selection.Copy Destination:=Sheets(1).Range("A65536").End(xlUp)(2)
Next
End Sub
[/vba]

Автор - uchenik
Дата добавления - 03.03.2015 в 14:15
uchenik Дата: Вторник, 03.03.2015, 14:26 | Сообщение № 2
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
P.S.
макрос работает, если только перекопировать все значения страниц в новый файл без формул... это уже не совсем решение, т.к. с таким же успехом можно и просто ручками объединять данные
спасибо
 
Ответить
СообщениеP.S.
макрос работает, если только перекопировать все значения страниц в новый файл без формул... это уже не совсем решение, т.к. с таким же успехом можно и просто ручками объединять данные
спасибо

Автор - uchenik
Дата добавления - 03.03.2015 в 14:26
wild_pig Дата: Вторник, 03.03.2015, 15:46 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 517
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
Покажите в файле что нужно получить в итоге.
 
Ответить
СообщениеПокажите в файле что нужно получить в итоге.

Автор - wild_pig
Дата добавления - 03.03.2015 в 15:46
Manyasha Дата: Вторник, 03.03.2015, 16:14 | Сообщение № 4
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
uchenik, здравствуйте. Поправила немного Ваш код:
[vba]
Код
    For J = 2 To Sheets.Count
         Sheets(J).Activate
         Range("A1").CurrentRegion.Select
         Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Copy
         Sheets("oc_filter").Range("A65536").End(xlUp)(2).PasteSpecial Paste:=xlPasteValues
         Application.CutCopyMode = False
     Next
[/vba]
К сообщению приложен файл: 4407850.xls (34.5 Kb)


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеuchenik, здравствуйте. Поправила немного Ваш код:
[vba]
Код
    For J = 2 To Sheets.Count
         Sheets(J).Activate
         Range("A1").CurrentRegion.Select
         Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Copy
         Sheets("oc_filter").Range("A65536").End(xlUp)(2).PasteSpecial Paste:=xlPasteValues
         Application.CutCopyMode = False
     Next
[/vba]

Автор - Manyasha
Дата добавления - 03.03.2015 в 16:14
uchenik Дата: Вторник, 03.03.2015, 16:17 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
вот такой должен быть результат
нужно, чтобы объединились все строки со всех листов


сортировку по возрастанию уже потом ручками можно сделать в 1 клик
 
Ответить
Сообщениевот такой должен быть результат
нужно, чтобы объединились все строки со всех листов


сортировку по возрастанию уже потом ручками можно сделать в 1 клик

Автор - uchenik
Дата добавления - 03.03.2015 в 16:17
uchenik Дата: Вторник, 03.03.2015, 16:23 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Manyasha, спасибо большое!!! заработало :)
 
Ответить
СообщениеManyasha, спасибо большое!!! заработало :)

Автор - uchenik
Дата добавления - 03.03.2015 в 16:23
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Объединение нескольких листов в один (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!