kzen.dev
  • Вопросы
  • Метки
  • Пользователи
Оповещения
Вознаграждения
Регистрация
После регистрации, сможете получать уведомления об ответах и комментариях на Ваши вопросы.
Вход
Если у Вас уже есть аккаунт, войдите чтобы проверить новые уведомления.
Тут будут вознаграждения за добавленные вопросы, ответы и комментарий.
Дополнительно
Источник
Редактировать
 Achak
Achak
Вопрос

Сохранение рабочего листа excel в файлы CSV с именем файла+имя рабочего листа с помощью VB

Я очень новичок в кодировании на VB, я пытаюсь сохранить несколько рабочих листов файла excel в csv, я не знаю, как это сделать для нескольких листов, но я нашел способ сделать это для одного файла. Я нашел код на этом сайте, который очень полезен для того, что я пытаюсь сделать, только проблема в том, что файлы сохраняются с именем рабочего листа, но я пытаюсь сохранить их с оригинальным именем файла и рабочего листа, например filename_worksheet name, я пытался сделать это сам, но продолжаю получать ошибку, не могли бы вы подсказать, что я делаю неправильно?

Код, который я использую, выглядит следующим образом:

   Public Sub SaveWorksheetsAsCsv()

   Dim WS As Excel.Worksheet
   Dim SaveToDirectory As String

   Dim CurrentWorkbook As String
   Dim CurrentFormat As Long

   CurrentWorkbook = ThisWorkbook.FullName
   CurrentFormat = ThisWorkbook.FileFormat
   ' Store current details for the workbook
   SaveToDirectory = "H:\test\"
   For Each WS In ThisWorkbook.Worksheets
   WS.SaveAs SaveToDirectory & WS.Name, xlCSV
   Next

Application.DisplayAlerts = False
ThisWorkbook.SaveAs Filename:=CurrentWorkbook, FileFormat:=CurrentFormat
Application.DisplayAlerts = True
' Temporarily turn alerts off to prevent the user being prompted
'  about overwriting the original file.

End Sub 
25 2012-05-11T12:29:55+00:00 3
 RoelF
RoelF
Редактировал вопрос 8-го декабря 2015 в 12:18
Программирование
vba
csv
excel
excel-vba
Этот вопрос имеет 1 ответ на английском, чтобы прочитать их войдите в свой аккаунт.
Решение / Ответ
Ben Strombeck
Ben Strombeck
11-го мая 2012 в 1:00
2012-05-11T13:00:09+00:00
Дополнительно
Источник
Редактировать
#16164010

Я думаю, это то, что вам нужно...

Sub SaveWorksheetsAsCsv()

Dim WS As Excel.Worksheet
Dim SaveToDirectory As String

Dim CurrentWorkbook As String
Dim CurrentFormat As Long

CurrentWorkbook = ThisWorkbook.FullName
CurrentFormat = ThisWorkbook.FileFormat
' Store current details for the workbook
SaveToDirectory = "H:\test\"

For Each WS In Application.ActiveWorkbook.Worksheets
    WS.SaveAs SaveToDirectory & WS.Name, xlCSV
Next

Application.DisplayAlerts = False
ThisWorkbook.SaveAs Filename:=CurrentWorkbook, FileFormat:=CurrentFormat
Application.DisplayAlerts = True
' Temporarily turn alerts off to prevent the user being prompted
'  about overwriting the original file.

End Sub
 lbom
lbom
Редактировал ответ 19-го июля 2019 в 7:05
40
0
Siddharth Rout
Siddharth Rout
11-го мая 2012 в 12:58
2012-05-11T12:58:19+00:00
Дополнительно
Источник
Редактировать
#16164009

Это то, что вы пытаетесь сделать?

Option Explicit

Public Sub SaveWorksheetsAsCsv()
    Dim WS As Worksheet
    Dim SaveToDirectory As String, newName As String

    SaveToDirectory = "H:\test\"

    For Each WS In ThisWorkbook.Worksheets
        newName = GetBookName(ThisWorkbook.Name) & "_" & WS.Name
        WS.Copy
        ActiveWorkbook.SaveAs SaveToDirectory & newName, xlCSV
        ActiveWorkbook.Close Savechanges:=False
    Next
End Sub

Function GetBookName(strwb As String) As String
    GetBookName = Left(strwb, (InStrRev(strwb, ".", -1, vbTextCompare) - 1))
End Function
2
0
Bek Raupov
Bek Raupov
11-го мая 2012 в 1:04
2012-05-11T13:04:56+00:00
Дополнительно
Источник
Редактировать
#16164011

Лучший способ узнать это - записать макрос, выполнить точные шаги и посмотреть, какой код VBA он генерирует. Затем вы можете пойти и заменить те части, которые вы хотите сделать общими (например, имена файлов и прочее).

1
0
Похожие сообщества 2
Excel Chat
Excel Chat
6 008 пользователей
Наши каналы: • хаки экселя — @hacks_excel • хаки 1С — @hacks_1C Другие чаты: • по Power BI — @PBI_Rus • по Word — @wh_chat Админ: @max_excel
Открыть telegram
excel_ru
excel_ru
298 пользователей
обсуждение приёмов работы в excel, формулы, VBA, эксель
Открыть telegram
Добавить вопрос
Категории
Все
Технологий
Культура / Отдых
Жизнь / Искусство
Наука
Профессии
Бизнес
Пользователи
Все
Новые
Популярные
1
Денис Васьков
Зарегистрирован 16 часов назад
2
Dima Patrushev
Зарегистрирован 2 дня назад
3
sirojidddin otaboyev
Зарегистрирован 1 неделю назад
4
Елена Гайдамамакинат
Зарегистрирован 1 неделю назад
5
Иван Степанюк
Зарегистрирован 1 неделю назад
DE
ES
ID
JA
KO
RU
TR
© kzen.dev 2023
Источник
stackoverflow.com
под лицензией cc by-sa 3.0 с атрибуцией