powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / макрос в XLS: данные из всех листов перенести в новый
8 сообщений из 8, страница 1 из 1
макрос в XLS: данные из всех листов перенести в новый
    #38287232
В одной книге полсотни листов, имена этих листов - неизвестны (задаются разными ... буквально от уличного фонаря). Нужно в этом же файле макросом создать новый лист с каким-нибудь уникальным именем (например "00000-00000" - до такого имени мои искушённые работой зверята точно не додумаются), выделить и перенести в этот лист данные из всех листов, после чего (желательно) удалить листы-источники, оставив лишь один сборный: "00000-00000".


В листах-источниках, если что, данные предельно просты: в них таблички по 15-20 колонок и с парой-тройкой тысячей строк.
...
Рейтинг: 0 / 0
макрос в XLS: данные из всех листов перенести в новый
    #38287240
"выделить и перенести" - имелось ввиду действие по порядку: первый лист > скопировать в "00000-00000", второй лист > скопировать в "00000-00000" > и т.д. до последнего существующего листа. Такое вообще в Excel можно сделать макросом, нет?
...
Рейтинг: 0 / 0
макрос в XLS: данные из всех листов перенести в новый
    #38287259
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
макрос в XLS: данные из всех листов перенести в новый
    #38287299
Спасибо за посильную помощь, но я не в состоянии переделать предложенный мне вариант под свои нужды. Интерактивный вариант - это хорошо, но не в моём случае :(
У меня типичный клинический случай: мне нужно, чтобы всё делалось в классический "один клик".
...
Рейтинг: 0 / 0
макрос в XLS: данные из всех листов перенести в новый
    #38287306
На форуме программеров нашлось то, что нужно:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Sub pp()
Application.ScreenUpdating = False
Dim sh As Worksheet
Dim shItog As Worksheet
Dim iL As Long, iL2 As Long
Set shItog = Sheets("лист1") 'итоговый лист
For Each sh In Worksheets
If sh.Name <> shItog.Name Then
iL = sh.Cells(Rows.Count, 1).End(xlUp).Row
iL2 = shItog.Cells(Rows.Count, 1).End(xlUp).Row + 2
sh.Range(sh.Cells(1, 1), sh.Cells(iL, 10)).Copy shItog.Cells(iL2, 1)
End If
Next sh
Application.ScreenUpdating = True
End Sub



Осталось единственное - грохнуть всё, что не имеет отношения к (" лист1 "). Т.е. все остальные листы.
...
Рейтинг: 0 / 0
макрос в XLS: данные из всех листов перенести в новый
    #38287364
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
объединаторОсталось единственное - грохнуть всё, что не имеет отношения к (" лист1 "). Т.е. все остальные листы.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Sub DelSheetsExcept(shKeepName As String)
    Dim sh As Object, aSh(), i&
    If Worksheets.Count < 2 Then Exit Sub
    ReDim aSh(Worksheets.Count - 2)
    i = 0
    For Each sh In Worksheets
        If sh.Name <> shKeepName Then
            aSh(i) = sh.Name
            i = i + 1
        End If
    Next
    Application.DisplayAlerts = False
    Sheets(aSh).Delete
    Application.DisplayAlerts = True
End Sub
...
Рейтинг: 0 / 0
макрос в XLS: данные из всех листов перенести в новый
    #38287719
Спасибо большое!

Последняя просьба: скажите, можно ли создать лист в книге с заданным именем?
...
Рейтинг: 0 / 0
макрос в XLS: данные из всех листов перенести в новый
    #38287754
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет, но никто не мешает сразу его переименовать
Код: vbnet
1.
2.
Set sh = Worksheets.Add
sh.Name = "уух"
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / макрос в XLS: данные из всех листов перенести в новый
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]