powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / как создать фаил csv при сохранении фаила Excel 2007 (состоит из нескольких sheet)
6 сообщений из 6, страница 1 из 1
как создать фаил csv при сохранении фаила Excel 2007 (состоит из нескольких sheet)
    #38265115
Komandante77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день,

Мне нужно реализовать следующую логику.
При сохранении фаила Excel 2007 (состоит из нескольких sheet) должен создаватся csv файл с содержанием текущей sheet.

текущий sheet.

колонка1 колонка2 колонка3
ххххх ыыыы 150
зззззз ккккк 200

Где и какой код на VBA нужно вставить, чтобы реализовать ету логику?

Спасибо.
...
Рейтинг: 0 / 0
как создать фаил csv при сохранении фаила Excel 2007 (состоит из нескольких sheet)
    #38265142
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
как создать фаил csv при сохранении фаила Excel 2007 (состоит из нескольких sheet)
    #38265150
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А "логику" можно прописать в событии Workbook_BeforeSave
...
Рейтинг: 0 / 0
как создать фаил csv при сохранении фаила Excel 2007 (состоит из нескольких sheet)
    #38265160
Komandante77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
merci beaucoup
...
Рейтинг: 0 / 0
как создать фаил csv при сохранении фаила Excel 2007 (состоит из нескольких sheet)
    #38267021
Komandante77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ув AndreTM

я переписал код след образом. К сожалению, VBA никогда не пользовался , поэтому и не знаю как и что.


Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

Call ExportSheettoCSV

End Sub


Sub ExportSheettoCSV()
'
nStartRow = 1
nStartCol = 1
lIsHeader = True
cTextQualifier = ""
cDelimiter = ","
cDecimalSeparator = "."
cFormatDateTime = "YYYY-MM-DD hh:mm:ss"
cTypeQualifier = "#"
cFileName = "CP_forecast_csv"

Set wb = ActiveWorkbook
Set sh = ActiveWorkbook.Sheets("data01")
Set newwb = Workbooks.Add
Set newsh = newwb.Sheets(1)

nLastRow = sh.Cells(sh.Rows.Count, 1).End(xlUp).Row
nLastCol = sh.Cells(1, sh.Columns.Count).End(xlToLeft).Column
Dim aCells As Variant, aRow As Variant
For i = nStartRow To nLastRow
cOut = ""
For j = nStartCol To nLastCol
cValue = sh.Cells(i, j)
nValueType = VarType(cValue)
If lIsHeader And (i = 1) Then nValueType = -1
Select Case nValueType
Case -1
Case vbString
cValue = cTextQualifier & cValue & cTextQualifier
Case vbInteger, vbLong, vbByte
cValue = CStr(cValue)
Case vbSingle, vbDouble, vbCurrency, vbDecimal
cValue = Replace(CStr(cValue), Application.International(xlDecimalSeparator), cDecimalSeparator)
Case vbBoolean
cValue = cTypeQualifier & CStr(cValue) & cTypeQualifier
Case vbDate
cValue = cTypeQualifier & Format(cValue, cFormatDateTime) & cTypeQualifier
Case Else
cValue = ""
End Select
cOut = cOut & cDelimiter & CStr(cValue)
Next
newsh.Cells(i, 1) = Mid(cOut, 2)
Next

Set newsh = Nothing
Application.DisplayAlerts = False
newwb.SaveAs Filename:=(cFileName), FileFormat:=xlTextPrinter, _
CreateBackup:=False, local:=True
Application.DisplayAlerts = True
newwb.Close savechanges:=False
Set newwb = Nothing
wb.Activate
Set sh = Nothing
Set wb = Nothing

End Sub





К сожалению , фаил не экспортируется вообще.
...
Рейтинг: 0 / 0
как создать фаил csv при сохранении фаила Excel 2007 (состоит из нескольких sheet)
    #38267250
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Могли бы просто спросить - код приводить не обязательно.
Я так понял, что вам нужно экспортировать в файл с определенным именем... Ну так у вас и экспортируется - только в "путь по умолчанию", если не было операций сохранения - то в "Мои документы" юзера. Там и смотрИте

А по идее, если вы желаете иметь экспорт в каталог с рабочей книгой - то надо было так:
Код: vbnet
1.
Filename:=(wb.Path & "\" & cFileName)


Ну и для гибкости - имя файла можно вообще передавать в функцию как параметр...
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / как создать фаил csv при сохранении фаила Excel 2007 (состоит из нескольких sheet)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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