Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2011, 02:13   #1
kir1381
 
Регистрация: 14.04.2011
Сообщений: 8
По умолчанию Авто экспорт из XLS в CSV

Здравствуйте. Скажите пожалуйста есть ли в экселе функция автосохранения определенных ячеек с данными в файл формата CSV.
Зараннее спасибо.
kir1381 вне форума Ответить с цитированием
Старый 11.05.2011, 05:37   #2
Sparkman
220400
Форумчанин
 
Аватар для Sparkman
 
Регистрация: 21.05.2010
Сообщений: 726
По умолчанию

Нету (по крайней мере функции "Экспорт", как в Access'е не нашел).
Скопируйте нужный диапазон в новую книгу и сохраните в формате csv.
Либо макрос напишите, который собственно делает тоже самое.
Cерьёзной помощи не ждите - помогаю в перерывах на "перекур".
Не существует ничего невозможного для человека, который не собирается ничего делать сам.
Не учите человека, если вы не его учитель.
Sparkman вне форума Ответить с цитированием
Старый 11.05.2011, 06:15   #3
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Поиском не пробовали воспользоваться?
http://excelvba.ru/code/Range2CSV
EducatedFool вне форума Ответить с цитированием
Старый 21.05.2011, 15:23   #4
Сергей846
Пользователь
 
Регистрация: 22.04.2010
Сообщений: 15
По умолчанию

Как сделать чтобы SaveTXTfile сохранял текст в кодировке DOS (866)?
Код:
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
В модуле также есть функции Range2CSV, SaveTXTfile
Код:
Function SaveTXTfile(ByVal filename As String, ByVal txt As String) As Boolean
     On Error Resume Next: Err.Clear
     Set fso = CreateObject("scripting.filesystemobject")
     Set ts = fso.CreateTextFile(filename, True)
     ts.Write txt: ts.Close
     SaveTXTfile = Err = 0
     Set ts = Nothing: Set fso = Nothing
End Function
Заранее спасибо!

Последний раз редактировалось Сергей846; 22.05.2011 в 10:22.
Сергей846 вне форума Ответить с цитированием
Старый 22.05.2011, 22:44   #5
Сергей846
Пользователь
 
Регистрация: 22.04.2010
Сообщений: 15
По умолчанию

Снимаю вопрос. Проблема решена.
Сергей846 вне форума Ответить с цитированием
Старый 10.11.2011, 00:32   #6
norvik
 
Регистрация: 14.08.2011
Сообщений: 5
Вопрос

Добрый вечер, прошу помочь решить такой вопрос: надо с задаваемым интервалом времени экспортировать лист экселя в файл формата ТХТ.
Я в ВБА нуль, но с помощью макрорекордера и гуглей соорудил такую конструкцию:

UserFrom1:

Public StartStop As Integer

Private Sub CommandButton1_Click()
Dim PauseTime, Start
PauseTime = UserForm1.TextBox1.Value
StartStop = 1
Do While StartStop = 1
Start = Timer
Do While Timer < Start + PauseTime
DoEvents
Loop
ActiveWorkbook.SaveAs Filename:= _
"C:\Documents and Settings\Admin\Рабочий стол\List_ Excel.txt", FileFormat:= _
xlText, CreateBackup:=False
Loop
End Sub

Private Sub CommandButton2_Click()
StartStop = 2
Unload Me
End Sub


Module1:

Sub EXPORT()
UserForm1.Show
End Sub

Работает, но перед каждым действием появляется окно с предупреждением что такой файл уже существует, и вопросом:экспортировать?
Можно как то поменять код, чтобы запись происходила автоматически поверх существующего файла?
norvik вне форума Ответить с цитированием
Старый 10.11.2011, 00:47   #7
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Перед сохранением выполните
Application.displayalerts=false
потом верните назад.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Экспорт в CSV Nooned Microsoft Office Access 7 11.02.2015 18:02
Перенос с xls в csv Fart Microsoft Office Excel 7 24.10.2011 23:11
Экспорт в csv и импорт из csv cent Microsoft Office Excel 12 28.12.2008 19:50
Копирование данных из csv в xls Lenin21 Microsoft Office Excel 0 06.11.2008 21:10
Поиск *.csv и *.xls файлов Len@ Microsoft Office Excel 18 28.07.2008 22:31