|
как создать фаил csv при сохранении фаила Excel 2007 (состоит из нескольких sheet)
|
|||
---|---|---|---|
#18+
Добрый день, Мне нужно реализовать следующую логику. При сохранении фаила Excel 2007 (состоит из нескольких sheet) должен создаватся csv файл с содержанием текущей sheet. текущий sheet. колонка1 колонка2 колонка3 ххххх ыыыы 150 зззззз ккккк 200 Где и какой код на VBA нужно вставить, чтобы реализовать ету логику? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2013, 19:00 |
|
как создать фаил csv при сохранении фаила Excel 2007 (состоит из нескольких sheet)
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2013, 19:17 |
|
как создать фаил csv при сохранении фаила Excel 2007 (состоит из нескольких sheet)
|
|||
---|---|---|---|
#18+
А "логику" можно прописать в событии Workbook_BeforeSave ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2013, 19:22 |
|
как создать фаил csv при сохранении фаила Excel 2007 (состоит из нескольких sheet)
|
|||
---|---|---|---|
#18+
merci beaucoup ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2013, 19:32 |
|
как создать фаил csv при сохранении фаила Excel 2007 (состоит из нескольких sheet)
|
|||
---|---|---|---|
#18+
Ув 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 К сожалению , фаил не экспортируется вообще. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2013, 18:20 |
|
как создать фаил csv при сохранении фаила Excel 2007 (состоит из нескольких sheet)
|
|||
---|---|---|---|
#18+
Могли бы просто спросить - код приводить не обязательно. Я так понял, что вам нужно экспортировать в файл с определенным именем... Ну так у вас и экспортируется - только в "путь по умолчанию", если не было операций сохранения - то в "Мои документы" юзера. Там и смотрИте А по идее, если вы желаете иметь экспорт в каталог с рабочей книгой - то надо было так: Код: vbnet 1.
Ну и для гибкости - имя файла можно вообще передавать в функцию как параметр... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2013, 21:09 |
|
|
start [/forum/topic.php?fid=61&msg=38267021&tid=2174794]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 347ms |
total: | 491ms |
0 / 0 |