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

Вход

Регистрация

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

 

= Мир MS Excel/Экспорт текстового файла в формате MSDOS - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Экспорт текстового файла в формате MSDOS (Макросы Sub)
Экспорт текстового файла в формате MSDOS
Игорь Дата: Воскресенье, 12.01.2014, 23:19 | Сообщение № 1
Группа: Гости
Помогите пожалуйста разобраться.
Есть макрос экспорта в .txt, нашел давно на каком-то форуме, подправил под свои нужды, пользуюсь - все работает, появилась необходимость сохранять файлы в формате MSDOS.
Ковырялся в рекодере понял, что нужно куда то в код вставить FileFormat = xlTextMSDOS, куда не пойму, в VBA еще не все понимаю, подскажите, пожалуйста, где и как указать формат.

[vba]
Код
Sub Delim()

Dim i As Long, j As Long
Dim PathForFile As String
Dim NameForSave As String
Dim FileFormat As String
Dim tempstr As String
Dim Rn As Range
Dim Delim1 As String
Dim Delim2 As String
Dim Val
On Error Resume Next
PathForFile$ = ThisWorkbook.Path & "\Реестры\": MkDir PathForFile$

If Err.Number <> 75 And Err.Number <> 0 Then GoTo Ext
Err.Clear
On Error GoTo Ext
NameForSave = InputBox("Укажите маску файла", "Ввод", ActiveWorkbook.Name)
Delim1 = CStr(";")
Delim2 = CStr("")
Randomize
NameForSave = NameForSave & "_" & CStr(Date)
Set Rn = Range("A1:U1")
i = 1
While Len(Rn.Cells(1).Offset(i).Value) > 0
i = i + 1
Wend
If i = 1 Then Exit Sub
Val = Rn.Offset(1).Resize(i).Value
On Error Resume Next
Kill PathForFile$ & "\" & NameForSave & ".txt"
Err.Clear
On Error GoTo Ext
Open PathForFile$ & "\" & NameForSave & ".txt" For Output As #1

For i = 1 To UBound(Val, 1) - 1
tempstr = Delim2 & CStr(Val(i, 1)) & Delim2
For j = 2 To UBound(Val, 2)
tempstr = tempstr & Delim1 & Delim2 & CStr(Val(i, j)) & Delim2
Next j
Print #1, tempstr
Next i

Close #1

Exit Sub
Ext:
MsgBox "Ошибка" & Err.Number & " " & Err.Description, vbOKOnly, "Упс!"
End Sub
[/vba]
 
Ответить
СообщениеПомогите пожалуйста разобраться.
Есть макрос экспорта в .txt, нашел давно на каком-то форуме, подправил под свои нужды, пользуюсь - все работает, появилась необходимость сохранять файлы в формате MSDOS.
Ковырялся в рекодере понял, что нужно куда то в код вставить FileFormat = xlTextMSDOS, куда не пойму, в VBA еще не все понимаю, подскажите, пожалуйста, где и как указать формат.

[vba]
Код
Sub Delim()

Dim i As Long, j As Long
Dim PathForFile As String
Dim NameForSave As String
Dim FileFormat As String
Dim tempstr As String
Dim Rn As Range
Dim Delim1 As String
Dim Delim2 As String
Dim Val
On Error Resume Next
PathForFile$ = ThisWorkbook.Path & "\Реестры\": MkDir PathForFile$

If Err.Number <> 75 And Err.Number <> 0 Then GoTo Ext
Err.Clear
On Error GoTo Ext
NameForSave = InputBox("Укажите маску файла", "Ввод", ActiveWorkbook.Name)
Delim1 = CStr(";")
Delim2 = CStr("")
Randomize
NameForSave = NameForSave & "_" & CStr(Date)
Set Rn = Range("A1:U1")
i = 1
While Len(Rn.Cells(1).Offset(i).Value) > 0
i = i + 1
Wend
If i = 1 Then Exit Sub
Val = Rn.Offset(1).Resize(i).Value
On Error Resume Next
Kill PathForFile$ & "\" & NameForSave & ".txt"
Err.Clear
On Error GoTo Ext
Open PathForFile$ & "\" & NameForSave & ".txt" For Output As #1

For i = 1 To UBound(Val, 1) - 1
tempstr = Delim2 & CStr(Val(i, 1)) & Delim2
For j = 2 To UBound(Val, 2)
tempstr = tempstr & Delim1 & Delim2 & CStr(Val(i, j)) & Delim2
Next j
Print #1, tempstr
Next i

Close #1

Exit Sub
Ext:
MsgBox "Ошибка" & Err.Number & " " & Err.Description, vbOKOnly, "Упс!"
End Sub
[/vba]

Автор - Игорь
Дата добавления - 12.01.2014 в 23:19
ikki Дата: Воскресенье, 12.01.2014, 23:36 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
куда то в код вставить FileFormat = xlTextMSDOS
этот аргумент и это значение применимы только к методу SaveAs объекта Workbook
соответственно - как вариант - решение может быть следующим:
формируете ваши данные на листе (единственном!) чистой книги, а потом сохраняете эту книгу в указанном формате.


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщение
куда то в код вставить FileFormat = xlTextMSDOS
этот аргумент и это значение применимы только к методу SaveAs объекта Workbook
соответственно - как вариант - решение может быть следующим:
формируете ваши данные на листе (единственном!) чистой книги, а потом сохраняете эту книгу в указанном формате.

Автор - ikki
Дата добавления - 12.01.2014 в 23:36
Игорь Дата: Воскресенье, 12.01.2014, 23:52 | Сообщение № 3
Группа: Гости
-этот аргумент и это значение применимы только к методу SaveAs

В примере у меня разделители столбцов указаны ";"
по факту у меня должно быть без разделителей, т.е. Delim1 = CStr("")
Подвох в том, что если я сохранять методом SaveAs объекта Workbook, то разделитель остается TAB. :(
 
Ответить
Сообщение-этот аргумент и это значение применимы только к методу SaveAs

В примере у меня разделители столбцов указаны ";"
по факту у меня должно быть без разделителей, т.е. Delim1 = CStr("")
Подвох в том, что если я сохранять методом SaveAs объекта Workbook, то разделитель остается TAB. :(

Автор - Игорь
Дата добавления - 12.01.2014 в 23:52
ikki Дата: Воскресенье, 12.01.2014, 23:54 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
tab - это для ячеек
а если всё писать в одну ячейку?
или у вас оч.длинные строки?


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщениеtab - это для ячеек
а если всё писать в одну ячейку?
или у вас оч.длинные строки?

Автор - ikki
Дата добавления - 12.01.2014 в 23:54
Игорь Дата: Понедельник, 13.01.2014, 00:03 | Сообщение № 5
Группа: Гости
->или у вас оч.длинные строки?

21 строка общая длина 328
ответ сам напросился в мозг :)
можно ведь CONCATENATE прописать в макросе перед экспортом yes
 
Ответить
Сообщение->или у вас оч.длинные строки?

21 строка общая длина 328
ответ сам напросился в мозг :)
можно ведь CONCATENATE прописать в макросе перед экспортом yes

Автор - Игорь
Дата добавления - 13.01.2014 в 00:03
Игорь Дата: Понедельник, 13.01.2014, 01:10 | Сообщение № 6
Группа: Гости
ikki, спасибо большое, за отзывчивость и идею ;)
 
Ответить
Сообщениеikki, спасибо большое, за отзывчивость и идею ;)

Автор - Игорь
Дата добавления - 13.01.2014 в 01:10
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Экспорт текстового файла в формате MSDOS (Макросы Sub)
  • Страница 1 из 1
  • 1
Поиск:

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