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

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

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

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

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

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

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

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

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

создавайте новую книгу, в нее по очереди вставляйте лист, сохраняйте, удаляйте лист и так до концаи зачем это все? Читай описание команды Copy для листов.
Код: plaintext
1.
2.
3.
4.
for each ws in thisworkbook.worksheets
    ws.copy
    activeworkbook.saveas ...
    activeworkbook.close
next
...
Рейтинг: 0 / 0
25.02.2010, 09:06
    #36487185
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить лист в xml!
Я сохранять в 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
25.02.2010, 09:12
    #36487197
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить лист в xml!
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
25.02.2010, 09:22
    #36487213
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить лист в xml!
Что-то главное-то я и не заметил... Спасибо, не знал, что книгу можно и не создавать:
Код: 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
25.02.2010, 17:43
    #36488611
cosco
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить лист в xml!
Огромное спасибо!
Работает!
...
Рейтинг: 0 / 0
26.02.2010, 09:16
    #36489350
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить лист в xml!
Чуть подправил - счётчик не нужен, ведь есть порядковый номер листа:

Код: 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
26.02.2010, 17:42
    #36490738
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить лист в xml!
Hugo121Чуть подправил - счётчик не нужен, ведь есть порядковый номер листа:А еще есть намного более полезное имя листа, но это видимо уже совсем высший пилотаж, да? :)
...
Рейтинг: 0 / 0
26.02.2010, 18:36
    #36490911
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранить лист в xml!
Ну поменяйте .Index на .Name - вполне сработает.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Сохранить лист в xml! / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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