|
|
|
Непонятный, но полезый макрос...
|
|||
|---|---|---|---|
|
#18+
Добрый день! В книге Била Джелена нашел макрос, который из всех рабочих книг, находящихся в одной папке, копирует все листы в одну книгу. Основные действия в макросе понятны, но хотелось немного его подкорректировать сам макрос и прояснить некоторые непонятные вещи: Sub CombineWorkbooks() Dim CurFile As String Dim DestWB As Workbook Dim ws As Object Const DirLoc As String = "C:\Data\" ' путь к папке с файлами Application.ScreenUpdating = False ' Set DestWB = Workbooks.Add(xlWorksheet) ' CurFile = Dir(DirLoc & "*.xls") Do While CurFile <> vbNullString Dim OrigWB As Workbook Set OrigWB = Workbooks.Open(Filename:=DirLoc & CurFile, ReadOnly:=True) 'открываем каждый файл CurFile = Left(Left(CurFile, Len(CurFile) - 3), 30) For Each ws In OrigWB.Sheets ws.Copy After:=DestWB.Sheets(DestWB.Sheets.Count) If OrigWB.Sheets.Count > 1 Then DestWB.Sheets(DestWB.Sheets.Count).Name = CurFile & ws.Index Else DestWB.Sheets(DestWB.Sheets.Count).Name = CurFile End If Next OrigWB.Close SaveChanges:=False CurFile = Dir Loop Application.DisplayAlerts = False DestWB.Sheets(1).Delete Application.DisplayAlerts = True Application.ScreenUpdating = True Set DestWB = Nothing End Sub 1.Макрос копирует рабочие листы в новую рабочую книгу, а как сделать так чтобы копировал в книгу в которой кнопка по исполнению макроса? 2.Из каждой книги мне нужно допустим удалить Лист1 я вставляю в цикл For Each ws In OrigWB.Sheets ws.Activate ws.Worksheets("Лист1").Delete ws.Copy After:=DestWB.Sheets(DestWB.Sheets.Count) If OrigWB.Sheets.Count > 1 Then DestWB.Sheets(DestWB.Sheets.Count).Name = CurFile & ws.Index Else DestWB.Sheets(DestWB.Sheets.Count).Name = CurFile End If Next а прога ругается...Подскажите пожалуйста, как мне корректно в цикле записать обращение к каждому листу1 для удаления... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 10:38:14 |
|
||
|
Непонятный, но полезый макрос...
|
|||
|---|---|---|---|
|
#18+
GhostProgram 1.Макрос копирует рабочие листы в новую рабочую книгу, а как сделать так чтобы копировал в книгу в которой кнопка по исполнению макроса? замени Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 10:51:02 |
|
||
|
Непонятный, но полезый макрос...
|
|||
|---|---|---|---|
|
#18+
GhostProgram 2.Из каждой книги мне нужно допустим удалить Лист1 я вставляю в цикл For Each ws In OrigWB.Sheets ws.Activate ws.Worksheets("Лист1").Delete ws.Copy After:=DestWB.Sheets(DestWB.Sheets.Count) If OrigWB.Sheets.Count > 1 Then DestWB.Sheets(DestWB.Sheets.Count).Name = CurFile & ws.Index Else DestWB.Sheets(DestWB.Sheets.Count).Name = CurFile End If Next а прога ругается...Подскажите пожалуйста, как мне корректно в цикле записать обращение к каждому листу1 для удаления... перед Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 10:57:18 |
|
||
|
Непонятный, но полезый макрос...
|
|||
|---|---|---|---|
|
#18+
А как мне можно копировать только "нужные" листы из рабочих книг? Например скопировать листы2? For Each ws In OrigWB.Sheets("Лист2") ws.Copy After:=DestWB.Sheets(DestWB.Sheets.Count) If OrigWB.Sheets.Count > 1 Then DestWB.Sheets(DestWB.Sheets.Count).Name = CurFile & ws.Index Else DestWB.Sheets(DestWB.Sheets.Count).Name = CurFile End If или так не идет: For Each WorkSheets("Лист2") In OrigWB.Sheets ws.Copy After:=DestWB.Sheets(DestWB.Sheets.Count) If OrigWB.Sheets.Count > 1 Then DestWB.Sheets(DestWB.Sheets.Count).Name = CurFile & ws.Index Else DestWB.Sheets(DestWB.Sheets.Count).Name = CurFile End Синтаксис такой запутанный, не могу понять... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 11:36:41 |
|
||
|
Непонятный, но полезый макрос...
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2007, 09:27:14 |
|
||
|
Непонятный, но полезый макрос...
|
|||
|---|---|---|---|
|
#18+
GhostProgramА как мне можно копировать только "нужные" листы из рабочих книг? Например скопировать листы2? Код: plaintext 1. 2. 3. 4. 5. 6. Код: plaintext 1. 2. 3. 4. 5. 6. Синтаксис такой запутанный, не могу понять... кнопка SRC сверху делает прекрасный вид поста Код: plaintext 1. 2. 3. 4. 5. 6. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2007, 09:47:10 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=61&tid=2182906]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
73ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 369ms |

| 0 / 0 |
