Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Пересохранение из формата *.xlsx в *.csv - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Пересохранение из формата *.xlsx в *.csv (Формулы/Formulas)
Пересохранение из формата *.xlsx в *.csv
chilli81 Дата: Пятница, 01.08.2014, 10:00 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Здравствуйте уважаемые форумчане.
На решение проблемы о пересохранении открытого файла формата *.xlsx в *.csv был создан следующий код:

[vba]
Код
Sub SaveAsCSV_AllOpenedWB_and_AllSheets()
'
     Application.DisplayAlerts = False
     For Each wb In Workbooks
         If Windows(wb.Name).Visible Then
             For Each sh In ActiveWorkbook.Sheets
                 varFullNewName = wb.Path & "\" & Left(wb.Name, InStrRev(wb.Name, ".") - 1) & "--" & sh.Name & ".csv"
                 sh.Copy
                 ActiveWorkbook.SaveAs Filename:=varFullNewName, FileFormat:=xlCSV, CreateBackup:=False
                 Next sh
         End If
     Next wb
     Application.DisplayAlerts = True
End Sub
[/vba]
Это немного не то что надо лично мне, поскольку данный код выполняет сохранение всех листов активной книги, тогда как мне надо только пересохранить только сам файл в другом формате. Буду благодарен за подсказку. С уважением.
 
Ответить
СообщениеЗдравствуйте уважаемые форумчане.
На решение проблемы о пересохранении открытого файла формата *.xlsx в *.csv был создан следующий код:

[vba]
Код
Sub SaveAsCSV_AllOpenedWB_and_AllSheets()
'
     Application.DisplayAlerts = False
     For Each wb In Workbooks
         If Windows(wb.Name).Visible Then
             For Each sh In ActiveWorkbook.Sheets
                 varFullNewName = wb.Path & "\" & Left(wb.Name, InStrRev(wb.Name, ".") - 1) & "--" & sh.Name & ".csv"
                 sh.Copy
                 ActiveWorkbook.SaveAs Filename:=varFullNewName, FileFormat:=xlCSV, CreateBackup:=False
                 Next sh
         End If
     Next wb
     Application.DisplayAlerts = True
End Sub
[/vba]
Это немного не то что надо лично мне, поскольку данный код выполняет сохранение всех листов активной книги, тогда как мне надо только пересохранить только сам файл в другом формате. Буду благодарен за подсказку. С уважением.

Автор - chilli81
Дата добавления - 01.08.2014 в 10:00
RAN Дата: Пятница, 01.08.2014, 11:22 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
На Планете вчера были даны исчерпывающие ответы. Поскольку правила вы читать упорно не желаете ни там, ни тут, то ждите ответа... ждите ответа...


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеНа Планете вчера были даны исчерпывающие ответы. Поскольку правила вы читать упорно не желаете ни там, ни тут, то ждите ответа... ждите ответа...

Автор - RAN
Дата добавления - 01.08.2014 в 11:22
Rioran Дата: Пятница, 01.08.2014, 12:01 | Сообщение № 3
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
chilli81, здравствуйте.

Подсказка: ".csv" - это блокнотный формат. Блокнотные файлы поддерживают более одного листа за раз?


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279
 
Ответить
Сообщениеchilli81, здравствуйте.

Подсказка: ".csv" - это блокнотный формат. Блокнотные файлы поддерживают более одного листа за раз?

Автор - Rioran
Дата добавления - 01.08.2014 в 12:01
chilli81 Дата: Пятница, 01.08.2014, 12:07 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Тут суть в том что этот код создает мне три файла в формате название файла_Лист1.csv, название файла_Лист2.csv и название файла_Лист3.csv. Просто я в программировании только копировать умею то прошу помощи где в єтом коде поправить команду чтобы просто пересохраняло файл с другим расширением. Например вот рабочий код, который почему-то работает исключительно в ХР

[vba]
Код
Sub xlsx_csv_1()
'
     For Each wb In Workbooks
         If Windows(wb.Name).Visible Then
             MsgBox wb.Path & "\" & Left(wb.Name, InStrRev(wb.Name, ".") - 1)
             ActiveWorkbook.SaveAs Filename:=Left(wb.Name, InStrRev(wb.Name, ".") - 1) & ".csv" _
                 , FileFormat:=xlCSV, CreateBackup:=False
             ActiveWorkbook.Save
         End If
     Next wb
End Sub
[/vba]
Суть я понимаю но просто элементарно не хватает именно прикладных знаний чтобы что-то сделать. Я по образованию жесткий гуманитарий, хотя моего шефа это интересует почему-то слабо :)
 
Ответить
СообщениеТут суть в том что этот код создает мне три файла в формате название файла_Лист1.csv, название файла_Лист2.csv и название файла_Лист3.csv. Просто я в программировании только копировать умею то прошу помощи где в єтом коде поправить команду чтобы просто пересохраняло файл с другим расширением. Например вот рабочий код, который почему-то работает исключительно в ХР

[vba]
Код
Sub xlsx_csv_1()
'
     For Each wb In Workbooks
         If Windows(wb.Name).Visible Then
             MsgBox wb.Path & "\" & Left(wb.Name, InStrRev(wb.Name, ".") - 1)
             ActiveWorkbook.SaveAs Filename:=Left(wb.Name, InStrRev(wb.Name, ".") - 1) & ".csv" _
                 , FileFormat:=xlCSV, CreateBackup:=False
             ActiveWorkbook.Save
         End If
     Next wb
End Sub
[/vba]
Суть я понимаю но просто элементарно не хватает именно прикладных знаний чтобы что-то сделать. Я по образованию жесткий гуманитарий, хотя моего шефа это интересует почему-то слабо :)

Автор - chilli81
Дата добавления - 01.08.2014 в 12:07
Hugo Дата: Пятница, 01.08.2014, 12:41 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Что нужно? Текстовый файл с тремя листами? Покажите пример :)


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеЧто нужно? Текстовый файл с тремя листами? Покажите пример :)

Автор - Hugo
Дата добавления - 01.08.2014 в 12:41
chilli81 Дата: Пятница, 01.08.2014, 12:51 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Вот пожалуйста...Есть у меня таблица Ексель которую мне надо вручную залить в базу данных.... (примеры прикреплю ниже)
И надо пересохранить ее в таком же формате, а не чтоб символы разделались запятыми...
К сообщению приложен файл: 8738833.rar (8.9 Kb)
 
Ответить
СообщениеВот пожалуйста...Есть у меня таблица Ексель которую мне надо вручную залить в базу данных.... (примеры прикреплю ниже)
И надо пересохранить ее в таком же формате, а не чтоб символы разделались запятыми...

Автор - chilli81
Дата добавления - 01.08.2014 в 12:51
RAN Дата: Пятница, 01.08.2014, 20:27 | Сообщение № 7
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
<_<
[vba]
Код
Sub SaveAs_CSV()
Dim fName$
     With Application.FileDialog(msoFileDialogFilePicker)
         .InitialFileName = ThisWorkbook.Path & "\"
         .Filters.Clear
         .Filters.Add "Файлы Excel ", "*.xls*"
         .Show
         If .SelectedItems.Count = 0 Then
             fName = Empty: Exit Sub
         Else
             fName = .SelectedItems(1)
         End If
     End With
     With GetObject(fName)
             .SaveAs Filename:=Left(.FullName, InStrRev(.FullName, ".") - 1), _
                  FileFormat:=xlCSV, CreateBackup:=False, local:=True
                 .Close False
       End With
End Sub
[/vba]
К сообщению приложен файл: SaveCSV.xls (31.5 Kb)


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Пятница, 01.08.2014, 20:43
 
Ответить
Сообщение<_<
[vba]
Код
Sub SaveAs_CSV()
Dim fName$
     With Application.FileDialog(msoFileDialogFilePicker)
         .InitialFileName = ThisWorkbook.Path & "\"
         .Filters.Clear
         .Filters.Add "Файлы Excel ", "*.xls*"
         .Show
         If .SelectedItems.Count = 0 Then
             fName = Empty: Exit Sub
         Else
             fName = .SelectedItems(1)
         End If
     End With
     With GetObject(fName)
             .SaveAs Filename:=Left(.FullName, InStrRev(.FullName, ".") - 1), _
                  FileFormat:=xlCSV, CreateBackup:=False, local:=True
                 .Close False
       End With
End Sub
[/vba]

Автор - RAN
Дата добавления - 01.08.2014 в 20:27
Hugo Дата: Пятница, 01.08.2014, 21:24 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Вроде бы нормально, но я тоже уже так пробовал - там плохой источник, слишком много лишнего в usedrange... А бороться с этим в коде неохота...
Хотя может чтоб залить и сгодится - если лишние поля база будет игнорировать.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеВроде бы нормально, но я тоже уже так пробовал - там плохой источник, слишком много лишнего в usedrange... А бороться с этим в коде неохота...
Хотя может чтоб залить и сгодится - если лишние поля база будет игнорировать.

Автор - Hugo
Дата добавления - 01.08.2014 в 21:24
RAN Дата: Пятница, 01.08.2014, 22:02 | Сообщение № 9
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
слишком много лишнего в usedrange

Я думаю, дело, как всегда, в прокладке. (Между рулем и сиденьем :D )


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
слишком много лишнего в usedrange

Я думаю, дело, как всегда, в прокладке. (Между рулем и сиденьем :D )

Автор - RAN
Дата добавления - 01.08.2014 в 22:02
chilli81 Дата: Суббота, 02.08.2014, 10:30 | Сообщение № 10
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Спасибо, соорудил из всего что мне помогли что-то такое что понравилось моему шефу...Большое спасибо всем ответившим и иронизирующим :)
 
Ответить
СообщениеСпасибо, соорудил из всего что мне помогли что-то такое что понравилось моему шефу...Большое спасибо всем ответившим и иронизирующим :)

Автор - chilli81
Дата добавления - 02.08.2014 в 10:30
alex77755 Дата: Воскресенье, 03.08.2014, 22:11 | Сообщение № 11
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

Подсказка: ".csv" - это блокнотный формат

А можно поподробнее о формате: блокнотный?


Могу помочь в VB6, VBA
Alex77755@mail.ru
 
Ответить
Сообщение
Подсказка: ".csv" - это блокнотный формат

А можно поподробнее о формате: блокнотный?

Автор - alex77755
Дата добавления - 03.08.2014 в 22:11
alex77755 Дата: Воскресенье, 03.08.2014, 22:14 | Сообщение № 12
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±



Могу помочь в VB6, VBA
Alex77755@mail.ru
 
Ответить
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Пересохранение из формата *.xlsx в *.csv (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!