powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Сохранить лист в xml!
13 сообщений из 13, страница 1 из 1
Сохранить лист в xml!
    #36486470
cosco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не могу сохранить отдельный лист в формате xml.

у меня в книге 84 листа, мне нужно 84 файла xml с каждым листом отдельно.

Нашел только что можно сделать так:
ActiveWorkbook.SaveAs Filename:="test.xml", FileFormat:=xlXMLSpreadsheet, ReadOnlyRecommended:=False, CreateBackup:=False

но так xml файл содержит в себе все листы!

Есть идеи?
...
Рейтинг: 0 / 0
Сохранить лист в xml!
    #36486493
Dophin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
cosco,

создавайте новую книгу, в нее по очереди вставляйте лист, сохраняйте, удаляйте лист и так до конца
...
Рейтинг: 0 / 0
Сохранить лист в xml!
    #36486507
cosco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Такой способ хорош конечно же но ручками это делать долго.... а поскольку данные надо менять каждую неделю, то вообще беда. как можно это сделать с помощью макроса?
...
Рейтинг: 0 / 0
Сохранить лист в xml!
    #36486626
Dophin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
cosco,

дык я Вам и описал алгоритм для макроса)

Все достаточно легко делается. Завтра может сделаю
...
Рейтинг: 0 / 0
Сохранить лист в xml!
    #36486658
cosco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я сам к сожалению написать не смогу.((

Буду благодарен если завтра у Вас получиться
...
Рейтинг: 0 / 0
Сохранить лист в xml!
    #36486813
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dophincosco,

создавайте новую книгу, в нее по очереди вставляйте лист, сохраняйте, удаляйте лист и так до концаи зачем это все? Читай описание команды Copy для листов.
Код: plaintext
1.
2.
3.
4.
for each ws in thisworkbook.worksheets
    ws.copy
    activeworkbook.saveas ...
    activeworkbook.close
next
...
Рейтинг: 0 / 0
Сохранить лист в xml!
    #36487185
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я сохранять в xml не могу, тренировался на csv и xls:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
Option Explicit

Sub SaveAsXYZ()
Dim sh  As Object
Dim wb  As Object
Dim count As Integer
Application.ScreenUpdating = False
Application.DisplayAlerts = False

For Each sh In ThisWorkbook.Sheets
count = count +  1 
Set wb = Workbooks.Add( 1 )
wb.Sheets(wb.Sheets.count).Name = "ThisSheetsMustBeDeleted"
sh.Copy before:=wb.Sheets(wb.Sheets.count)
wb.Sheets(wb.Sheets.count).Delete
    wb.SaveAs Filename:= _
        ThisWorkbook.Path & "\TestSave" & Format(count, "00") & ".xls", FileFormat:= _
        xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
        , CreateBackup:=False

'    wb.SaveAs Filename:= _
        ThisWorkbook.Path & "\TestSaveXML" & Format(count, "00") & ".xml ", FileFormat:= _
        xlXMLSpreadsheet, ReadOnlyRecommended:=False, CreateBackup:=False"

'    wb.SaveAs Filename:= _
        ThisWorkbook.Path & "\TestSaveCSV" & Format(count, " 00 ") & ".csv", FileFormat:= _
        xlCSVMSDOS, CreateBackup:=False
Application.StatusBar = "Sheet " & count & " saved!"

wb.Close False
Set wb = Nothing
Next
Application.DisplayAlerts = True
Application.StatusBar = False
Application.ScreenUpdating = True
End Sub
...
Рейтинг: 0 / 0
Сохранить лист в xml!
    #36487197
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White OwlDophincosco,

создавайте новую книгу, в нее по очереди вставляйте лист, сохраняйте, удаляйте лист и так до концаи зачем это все? Читай описание команды Copy для листов.
Код: plaintext
1.
2.
3.
4.
for each ws in thisworkbook.worksheets
    ws.copy
    activeworkbook.saveas ...
    activeworkbook.close
next


Действительно, зачем я столько книг создавал? Можно обойтись одной, названия листов ведь повторяться не будут:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
Option Explicit

Sub SaveAsXYZ()
Dim sh  As Object
Dim wb  As Object
Dim count As Integer
Application.ScreenUpdating = False
Application.DisplayAlerts = False

Set wb = Workbooks.Add( 1 )
wb.Sheets(wb.Sheets.count).Name = "ThisSheetsMustBeDeleted"

For Each sh In ThisWorkbook.Sheets
count = count +  1 
sh.Copy before:=wb.Sheets(wb.Sheets.count)
wb.Sheets(wb.Sheets.count).Delete
    wb.SaveAs Filename:= _
        ThisWorkbook.Path & "\TestSave" & Format(count, "00") & ".xls", FileFormat:= _
        xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
        , CreateBackup:=False

'    wb.SaveAs Filename:= _
        ThisWorkbook.Path & "\TestSaveXML" & Format(count, "00") & ".xml ", FileFormat:= _
        xlXMLSpreadsheet, ReadOnlyRecommended:=False, CreateBackup:=False"

'    wb.SaveAs Filename:= _
        ThisWorkbook.Path & "\TestSaveCSV" & Format(count, " 00 ") & ".csv", FileFormat:= _
        xlCSVMSDOS, CreateBackup:=False
Application.StatusBar = "Sheet " & count & " saved!"

Next
wb.Close False
Set wb = Nothing

Application.DisplayAlerts = True
Application.StatusBar = False
Application.ScreenUpdating = True
End Sub
...
Рейтинг: 0 / 0
Сохранить лист в xml!
    #36487213
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что-то главное-то я и не заметил... Спасибо, не знал, что книгу можно и не создавать:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Sub White_Owl_SaveAs()
Dim ws  As Object
Dim count As Integer

Application.ScreenUpdating = False
Application.DisplayAlerts = False

For Each ws In ThisWorkbook.Worksheets
    ws.Copy
    count = count +  1 
    ActiveWorkbook.SaveAs Filename:= _
        ThisWorkbook.Path & "\TestSave" & Format(count, "00") & ".xls", FileFormat:= _
        xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
        , CreateBackup:=False

 ActiveWorkbook.Close
 Application.StatusBar = "Sheet " & count & " saved!"
 Next

Application.DisplayAlerts = True
Application.StatusBar = False
Application.ScreenUpdating = True

End Sub
...
Рейтинг: 0 / 0
Сохранить лист в xml!
    #36488611
cosco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огромное спасибо!
Работает!
...
Рейтинг: 0 / 0
Сохранить лист в xml!
    #36489350
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Чуть подправил - счётчик не нужен, ведь есть порядковый номер листа:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Sub SaveAllSheets()
Dim ws  As Object
Dim count As Integer
With Application
    .ScreenUpdating = False
    .DisplayAlerts = False
    
    For Each ws In ThisWorkbook.Worksheets
        ws.Copy
        ActiveWorkbook.SaveAs Filename:= _
            ThisWorkbook.Path & "\TestSave" & Format(ws.Index, "00") & ".xls", FileFormat:= _
            xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
            , CreateBackup:=False
    
     ActiveWorkbook.Close
     .StatusBar = "Sheet " & ws.Index & " saved!"
    Next
    
    .DisplayAlerts = True
    .StatusBar = False
    .ScreenUpdating = True
End With
End Sub
...
Рейтинг: 0 / 0
Сохранить лист в xml!
    #36490738
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hugo121Чуть подправил - счётчик не нужен, ведь есть порядковый номер листа:А еще есть намного более полезное имя листа, но это видимо уже совсем высший пилотаж, да? :)
...
Рейтинг: 0 / 0
Сохранить лист в xml!
    #36490911
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну поменяйте .Index на .Name - вполне сработает.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Сохранить лист в xml!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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