Добрый день! Помогите, пожалуйста, в решении следующей задачи.
В папке - путь c:\Мои документы\Выгрузки 20-30 файлов (табличные данные) в формате *.csv Необходимо пересохранить их в формат Лист Excel с поддержкой макросов с вызовом окна позволяющего выбрать файлы для пересохранения. Новые файлы (*.xlsm) должны сохраняться в ту же папку (c:\Мои документы\Выгрузки)
Nadine_abc, запишите макрорекордером открытие и сохранение как надо одного файла. Отрихтуйте под цикл. Используйте поиск. Уже не раз подобные вопросы решались.
Формула массива (ФМ) вводится Ctrl+Shift+Enter Memento mori
JayBhagavan, спасибо за ответ. Вопрос почти удалось закрыть макросом, который ниже. Не знаю, можно ли продолжить обсуждение в рамках этой темы, но все-таки... возникла другая проблема: при пересохранении *.csv в *.xlsm теряются разделители, то есть данные из нескольких столбцов объединяются в один. Если возможно, подскажите, как поправить или где посмотреть.
Sub CSVtoXls()
Dim CSVfolder As String Dim XlsFolder As String Dim fname As String Dim wBook As Workbook
With Application.FileDialog(msoFileDialogFilePicker) .AllowMultiSelect = True .InitialFileName = "*.*" .Title = "Choose files" If .Show = False Then Exit Sub
fname = Dir(CSVfolder & "*.csv")
Do While fname <> "" Set wBook = Workbooks.Open(CSVfolder & fname, Format:=6, Delimiter:=",") wBook.SaveAs XlsFolder & Replace(fname, ".csv", ""), ThisWorkbook.FileFormat wBook.Close False fname = Dir Loop End With End Sub
Открывайте csv через импорт внешних данных из текста (там заодно и формат ячейкам задайте, а то тоже может кое-что пропасть/исказиться), всё это записывется рекордером.