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

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

текущий sheet.

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

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

Спасибо.
...
Рейтинг: 0 / 0
20.05.2013, 19:17
    #38265142
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как создать фаил csv при сохранении фаила Excel 2007 (состоит из нескольких sheet)
...
Рейтинг: 0 / 0
20.05.2013, 19:22
    #38265150
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как создать фаил csv при сохранении фаила Excel 2007 (состоит из нескольких sheet)
А "логику" можно прописать в событии Workbook_BeforeSave
...
Рейтинг: 0 / 0
20.05.2013, 19:32
    #38265160
Komandante77
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как создать фаил csv при сохранении фаила Excel 2007 (состоит из нескольких sheet)
merci beaucoup
...
Рейтинг: 0 / 0
21.05.2013, 18:20
    #38267021
Komandante77
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как создать фаил csv при сохранении фаила Excel 2007 (состоит из нескольких sheet)
Ув 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
21.05.2013, 21:09
    #38267250
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как создать фаил csv при сохранении фаила Excel 2007 (состоит из нескольких sheet)
Могли бы просто спросить - код приводить не обязательно.
Я так понял, что вам нужно экспортировать в файл с определенным именем... Ну так у вас и экспортируется - только в "путь по умолчанию", если не было операций сохранения - то в "Мои документы" юзера. Там и смотрИте

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


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


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