Часто при формировании прайс-листов требуется выгрузить большой объём данных в текстовый файл в формате CSV (разделитель - точка с запятой, или запятая)
И далеко не всегда может помочь сохранение файла в этом формате, поскольку в выгрузку попадают лишние данные (заголовки таблиц, лишние строки и столбцы, и т.д.)
В данном случае поможет экспорт заданного диапазона ячеек в файл CSV, что проще всего сделать макросом с использованием функции Range2CSV:
Sub ЭкспортПрайсЛистаВФорматеCSV() On Error Resume Next Dim sh As Worksheet: Set sh = ActiveSheet ' обрабатывается активный лист ' диапазон ячеек с A5 до последней заполненной ячейки в столбце A ' расширенный по горизонтали на 10 столбцов (выгружаются столбцы с A по J) Dim ra As Range: Set ra = sh.Range(sh.[A5], sh.Range("A" & sh.Rows.Count).End(xlUp)).Resize(, 10) ' формируем текстовую строку, содержащую текст диапазона в формате CSV CSVtext$ = Range2CSV(ra, ";") ' можно указать другой разделитель столбцов ' создаём в папке с файлом XLS подпапку для CSV-прайсов (если такой папки ещё нет) CSVfolder$ = ThisWorkbook.Path & "\CSV prices\": MkDir CSVfolder$ ' формируем имя создаваемого файла CSV (c указанием текущей даты) CSVfilename$ = Format(Now, "YYYY MM DD HH-NN-SS") & ".csv" ' сохраняем текстовую CSV-строку CSVtext$ в файл с именем CSVfilename$ SaveTXTfile CSVfolder$ & CSVfilename$, CSVtext$ End Sub