Дата: Воскресенье, 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
этот аргумент и это значение применимы только к методу SaveAs объекта Workbook соответственно - как вариант - решение может быть следующим: формируете ваши данные на листе (единственном!) чистой книги, а потом сохраняете эту книгу в указанном формате.
этот аргумент и это значение применимы только к методу SaveAs объекта Workbook соответственно - как вариант - решение может быть следующим: формируете ваши данные на листе (единственном!) чистой книги, а потом сохраняете эту книгу в указанном формате.ikki
помощь по Excel и VBA ikki@fxmail.ru, icq 592842413, skype alex.ikki
Дата: Воскресенье, 12.01.2014, 23:52 |
Сообщение № 3
Группа: Гости
-этот аргумент и это значение применимы только к методу SaveAs
В примере у меня разделители столбцов указаны ";" по факту у меня должно быть без разделителей, т.е. Delim1 = CStr("") Подвох в том, что если я сохранять методом SaveAs объекта Workbook, то разделитель остается TAB.
-этот аргумент и это значение применимы только к методу SaveAs
В примере у меня разделители столбцов указаны ";" по факту у меня должно быть без разделителей, т.е. Delim1 = CStr("") Подвох в том, что если я сохранять методом SaveAs объекта Workbook, то разделитель остается TAB. Игорь