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

Вход

Регистрация

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

 

= Мир MS Excel/Объединение двух макросов - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Объединение двух макросов
elita86 Дата: Четверг, 20.12.2012, 09:08 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 71
Репутация: 0 ±
Замечаний: 0% ±

2010
Добрый день!
Помогите объеденить два макроса, первый макрос объединяет все все книги в одну, на разных листал. Второй макрос объединяет все листы в один список. Как сделать это всё одним макросом?
 
Ответить
СообщениеДобрый день!
Помогите объеденить два макроса, первый макрос объединяет все все книги в одну, на разных листал. Второй макрос объединяет все листы в один список. Как сделать это всё одним макросом?

Автор - elita86
Дата добавления - 20.12.2012 в 09:08
elita86 Дата: Четверг, 20.12.2012, 09:09 | Сообщение № 2
Группа: Пользователи
Ранг: Участник
Сообщений: 71
Репутация: 0 ±
Замечаний: 0% ±

2010
Первый макрос, объединяющий все книги в одну
[vba]
Code
Sub CombineWorkbooks()
Dim FilesToOpen
Dim x As Integer
On Error GoTo ErrHandler
Application.ScreenUpdating = False
FilesToOpen = Application.GetOpenFilename _
(FileFilter:="Microsoft Excel Files (*.csv), *.csv", _
MultiSelect:=True, Title:="Files to Merge")
If TypeName(FilesToOpen) = "Boolean" Then
MsgBox "Не выбрано ни одного файла!"
GoTo ExitHandler
End If
x = 1
While x <= UBound(FilesToOpen)
Workbooks.Open Filename:=FilesToOpen(x)
Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
x = x + 1
Wend
ExitHandler:
Application.ScreenUpdating = True
Exit Sub
ErrHandler:
MsgBox Err.Description
Resume ExitHandler
End Sub
[/vba]
 
Ответить
СообщениеПервый макрос, объединяющий все книги в одну
[vba]
Code
Sub CombineWorkbooks()
Dim FilesToOpen
Dim x As Integer
On Error GoTo ErrHandler
Application.ScreenUpdating = False
FilesToOpen = Application.GetOpenFilename _
(FileFilter:="Microsoft Excel Files (*.csv), *.csv", _
MultiSelect:=True, Title:="Files to Merge")
If TypeName(FilesToOpen) = "Boolean" Then
MsgBox "Не выбрано ни одного файла!"
GoTo ExitHandler
End If
x = 1
While x <= UBound(FilesToOpen)
Workbooks.Open Filename:=FilesToOpen(x)
Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
x = x + 1
Wend
ExitHandler:
Application.ScreenUpdating = True
Exit Sub
ErrHandler:
MsgBox Err.Description
Resume ExitHandler
End Sub
[/vba]

Автор - elita86
Дата добавления - 20.12.2012 в 09:09
elita86 Дата: Четверг, 20.12.2012, 09:09 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 71
Репутация: 0 ±
Замечаний: 0% ±

2010
Второй макрос, объединяющий все листы в список
Sub СобратьДанные()
Dim ws As Worksheet
Worksheets.Add before:=Sheets(1)
For Each ws In Worksheets
If Not ws Is ActiveSheet And Not ws.Name Like "прогр*" Then
ws.UsedRange.Copy Cells(Cells.SpecialCells(xlCellTypeLastCell).Row + 1, 1)
End If
Next
Rows(1).Delete
End Sub
 
Ответить
СообщениеВторой макрос, объединяющий все листы в список
Sub СобратьДанные()
Dim ws As Worksheet
Worksheets.Add before:=Sheets(1)
For Each ws In Worksheets
If Not ws Is ActiveSheet And Not ws.Name Like "прогр*" Then
ws.UsedRange.Copy Cells(Cells.SpecialCells(xlCellTypeLastCell).Row + 1, 1)
End If
Next
Rows(1).Delete
End Sub

Автор - elita86
Дата добавления - 20.12.2012 в 09:09
elita86 Дата: Четверг, 20.12.2012, 09:14 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 71
Репутация: 0 ±
Замечаний: 0% ±

2010
Извеняюсь, второй макрос не верный, вот верный
Sub СобратьДанные()
Dim ws As Worksheet
Worksheets.Add before:=Sheets(1)
For Each ws In Worksheets
If Not ws Is ActiveSheet And Not ws.Name Like "прогр*" Then
ws.UsedRange.Offset(1).Copy [a1048576].End(xlUp)(2)
End If
Next
Rows(1).Delete
End Sub
 
Ответить
СообщениеИзвеняюсь, второй макрос не верный, вот верный
Sub СобратьДанные()
Dim ws As Worksheet
Worksheets.Add before:=Sheets(1)
For Each ws In Worksheets
If Not ws Is ActiveSheet And Not ws.Name Like "прогр*" Then
ws.UsedRange.Offset(1).Copy [a1048576].End(xlUp)(2)
End If
Next
Rows(1).Delete
End Sub

Автор - elita86
Дата добавления - 20.12.2012 в 09:14
KuklP Дата: Четверг, 20.12.2012, 09:16 | Сообщение № 5
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Вставьте перед ExitHandler: строку:
СобратьДанные


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеВставьте перед ExitHandler: строку:
СобратьДанные

Автор - KuklP
Дата добавления - 20.12.2012 в 09:16
elita86 Дата: Четверг, 20.12.2012, 09:19 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 71
Репутация: 0 ±
Замечаний: 0% ±

2010
Я в макросах не силёнь, и эти писал не я. Если не затруднит, то не могли бы вы дать готовый макрос
 
Ответить
СообщениеЯ в макросах не силёнь, и эти писал не я. Если не затруднит, то не могли бы вы дать готовый макрос

Автор - elita86
Дата добавления - 20.12.2012 в 09:19
KuklP Дата: Четверг, 20.12.2012, 09:30 | Сообщение № 7
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Насколько надо быть сильным, чтоб после указанной строки вставить другую указанную строку?


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеНасколько надо быть сильным, чтоб после указанной строки вставить другую указанную строку?

Автор - KuklP
Дата добавления - 20.12.2012 в 09:30
elita86 Дата: Четверг, 20.12.2012, 09:40 | Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 71
Репутация: 0 ±
Замечаний: 0% ±

2010
не работает

[admin] elita86 оформляйте коды тегами[/admin]
 
Ответить
Сообщениене работает

[admin] elita86 оформляйте коды тегами[/admin]

Автор - elita86
Дата добавления - 20.12.2012 в 09:40
  • Страница 1 из 1
  • 1
Поиск:

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