powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Выгрузка из Эксель в текстовый документ без разделителей...
14 сообщений из 14, страница 1 из 1
Выгрузка из Эксель в текстовый документ без разделителей...
    #36582440
igoryava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вобщем есть макрос, который берет ДБФ-файл, вытягивает оттуда таблицу в Эксель и с Экселя сохраняет файл в текстовый. Когда открываю полученый текстовый файл (в Фаре), то разделителем столбцов(бывших) являеться Таб. Как сделать так, чтоб при экспорте в текстовый формат строчки были без разделителей (т.е. чтоб были одни пробелы)????


Вот на всякий случай тело макроса: ....

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
Private Sub CommandButton1_Click()
If (Trim(TextBox1.Text) = "" Or Trim(TextBox2.Text) = "" Or Trim(TextBox3.Text) = "") Then
    MsgBox ("Не заданы некоторые !!! ТЕКСТОВЫЕ ДАННЫЕ !!!")
    Exit Sub
End If
If (OptionButton1.Value = True) Then
    TextBox6.Text = ComboBox1.Text + " за " + ComboBox2.Text + " мiсяць " + Str(DTPicker2.Year) + " року"
    UserForm1.CommonDialog1.Filename = UserForm1.TextBox5.Text
    Workbooks.Open Filename:=UserForm1.CommonDialog1.Filename
    A1 = Trim(UserForm1.CommonDialog1.Filename)
    a2 = Len(A1)
    i = a2
    fr = True
    While (fr)
        If (i <>  0 ) Then
            a3 = Left(A1, i)
            If (Mid(a3, Len(a3)) = ".") Then
                a4 = Len(a3)
            ElseIf (Mid(a3, Len(a3)) = "\") Then
                a5 = Len(a3)
                fr = False
            End If
            i = i -  1 
        Else
            fr = False
        End If
    Wend
    a6 = Mid(A1, a5 +  1 , a4 -  1  - a5)
    Sheets(a6).Select
    fr = True
    i =  2 
    k = "F" + Trim(Str(i))
    While (fr)
        If (Range(k).Text <> "") Then
            A1 = Range(k).Text *  100 
            Range(k).Value = A1
            Range(k).Select
            Selection.NumberFormat = "0"
            i = i +  1 
            k = "F" + Trim(Str(i))
        Else
            fr = False
        End If
    Wend
    Sheets.Add
    Sheets(a6).Select
    Rows("1:1").Select
    Selection.Delete Shift:=xlUp
    Columns("G:G").Select
    Selection.Copy
    Sheets("Лист1").Select
    Columns("A:A").Select
    ActiveSheet.Paste
    Sheets(a6).Select
    Columns("E:E").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Лист1").Select
    Columns("B:B").Select
    ActiveSheet.Paste
    Sheets(a6).Select
    Columns("F:F").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Лист1").Select
    Columns("C:C").Select
    ActiveSheet.Paste
    Rows("1:1").Select
    Application.CutCopyMode = False
    Selection.Insert Shift:=xlDown
    Range("A1").Select
    ActiveCell.FormulaR1C1 = "ВЕДОМОСТЬ"
    Range("B1").Select
    ActiveCell.FormulaR1C1 = Trim(TextBox1.Text)
    Range("C1").Select
    Sheets(a6).Select
    Range("D2").Select
    Sheets("Лист1").Select
    ActiveCell.FormulaR1C1 = "='" + a6 + "'!R[1]C[1]"
    Selection.NumberFormat = "0"
    Range("D1").Select
    ActiveCell.FormulaR1C1 = Trim(TextBox2.Text)
    Selection.NumberFormat = "0"
   Range("E1").Select
    ActiveCell.FormulaR1C1 = Trim(TextBox3.Text)
    Selection.NumberFormat = "0"
    Range("F1").Select
    ActiveCell.FormulaR1C1 = Trim(DTPicker1.Value)
    Selection.NumberFormat = "General"
fr = True
ddd =  0 
ddd1 =  0 
    i =  2 
    k = "D" + Trim(Str(i))
    k1 = "C" + Trim(Str(i))
    k2 = "A" + Trim(Str(i))
    k3 = "B" + Trim(Str(i))
    While (fr)
        If (Trim(Range(k1).Text) <> "") Then
            If (Trim(Range(k2).Text) <> "" And Trim(Range(k3).Text) <> "") Then
                Range(k).FormulaR1C1 = TextBox6.Text 'Здесь может быть основание платежа
                ddd1 = ddd1 +  1 
                ddd = ddd + Range(k1).Value
                i = i +  1 
                k = "D" + Trim(Str(i))
                k1 = "C" + Trim(Str(i))
                k2 = "A" + Trim(Str(i))
                k3 = "B" + Trim(Str(i))
            Else
                Rows(Trim(Str(i)) + ":" + Trim(Str(i))).Select
                Selection.Delete Shift:=xlUp
            End If
        Else
            fr = False
        End If
    Wend
    Range("G1").Select
    ActiveCell.FormulaR1C1 = ddd
    Selection.NumberFormat = "0"
    Range("C1").Select
    ActiveCell.FormulaR1C1 = ddd1
    Selection.NumberFormat = "0"
    q = MsgBox("Общее количество платежей - " + Trim(Str(ddd1)) + ", общая сумма - " + Trim(Str(ddd /  100 )), vbInformation, "Результат по " + Trim(Str(a6)) + ".dbf")
   
A1:
    CommonDialog1.Filename = ActiveWorkbook.Path + "\" + a6 + ".txt"
    CommonDialog1.Filter = "*.txt"
    CommonDialog1.ShowSave
    If (CommonDialog1.Filename = ".txt") Then
        GoTo A1
    Else
        If (CommonDialog1.Filename <> "*.txt") Then ActiveWorkbook.SaveAs Filename:=CommonDialog1.Filename, _
        FileFormat:=xlTextMSDOS, CreateBackup:=False
    End If
    Windows(a6 + ".txt").Activate
    ActiveWindow.Close (False)
    a8 = a6 + ".txt"
    a9 = ActiveWorkbook.Path + "\zagruzka.bat " + a8 + " " + ActiveWorkbook.Path
    q = Shell(a9, vbMaximizedFocus)
    CommonDialog1.Filename = ""
ElseIf (OptionButton2.Value = True) Then
    Shell (ActiveWorkbook.Path + "\zagruzka.bat" + a8)
    MsgBox ActiveWorkbook.Path
    'здесь идет информация если ВЫГРУЗКА идет в ЭКСЕЛ
End If
End Sub

Private Sub CommandButton2_Click()
CommonDialog1.Filename = ActiveWorkbook.Path + "\" + "*.dbf"
CommonDialog1.Filter = "*.dbf"
CommonDialog1.ShowOpen
If (CommonDialog1.Filename = "*.dbf") Then
    TextBox5.Text = ""
    CommandButton1.Enabled = False
Else
    TextBox5.Text = CommonDialog1.Filename
    CommandButton1.Enabled = True
End If
End Sub

Private Sub CommandButton3_Click()
TextBox6.Text = ComboBox1.Text + " за " + ComboBox2.Text + " мiсяць " + Str(DTPicker2.Year) + " року"
End Sub

Private Sub DTPicker1_CallbackKeyDown(ByVal KeyCode As Integer, ByVal Shift As Integer, ByVal CallbackField As String, CallbackDate As Date)

End Sub

Private Sub TextBox2_Change()

End Sub

Private Sub TextBox3_Change()

End Sub

Private Sub UserForm_Activate()
DTPicker1.Value = Date
ComboBox1.AddItem "Пенсiя "
ComboBox1.AddItem "Допомога "
ComboBox1.ListIndex =  0 
ComboBox2.AddItem "Сiчень"
ComboBox2.AddItem "Лютий"
ComboBox2.AddItem "Березень"
ComboBox2.AddItem "Квiтень"
ComboBox2.AddItem "Травень"
ComboBox2.AddItem "Червень"
ComboBox2.AddItem "Липень"
ComboBox2.AddItem "Серпень"
ComboBox2.AddItem "Вересень"
ComboBox2.AddItem "Жовтень"
ComboBox2.AddItem "Листопад"
ComboBox2.AddItem "Грудень"
ComboBox2.ListIndex =  0 
End Sub
...
Рейтинг: 0 / 0
Выгрузка из Эксель в текстовый документ без разделителей...
    #36583188
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
разбираться в вашем динозавре желания не возникает, глядя на размер =))) однако, есть мнение, что при выгрузке из excel кроме как через пробел инфу в текстовик не вытащить: как-то столбцы-то должны различаться.

замените в текстовике tab на пробелы, дописав макрос в рекордере, и будет вам счастье.
...
Рейтинг: 0 / 0
Выгрузка из Эксель в текстовый документ без разделителей...
    #36583302
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть же ещё сохранение в prn - там нет табов, но зато куча пробелов:
Код: plaintext
1.
        1         2 
        3         4 
...
Рейтинг: 0 / 0
Выгрузка из Эксель в текстовый документ без разделителей...
    #36586170
igoryava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PlanB,

>замените в текстовике tab на пробелы, дописав макрос в рекордере, и будет вам счастье.

Так а какой макрос дописать и куда именно?

P.S. Вы уж не серчайте, просто я в программировании пока не силен)). Мне дали макрос не доделаный и сказали сделай)).
...
Рейтинг: 0 / 0
Выгрузка из Эксель в текстовый документ без разделителей...
    #36586235
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
igoryavaМне дали макрос не доделаный и сказали сделай)).да, знакомая ситуация =))) а так и учатся...igoryavaТак а какой макрос дописать и куда именно?ну, где в текстовик вываливаете, там и допишите. а как символ tab заменить на пробел, вы уж сами поищите =))
работа с текстовыми файлами, в целом, сводится к простому циклу по строкам.
что-то вроде
авторdo while not eof(дискриптор)
loopэто аналогично
авторfor i=1 to n
next iтолько вместо неизвестного n - кол-во строк файла (EOF = EndOfFile). дискриптор - идентификатор, который присваивается файлу при открытии.
внутри цикла запихайте замену ф-цией Replace()

ps: почитайте про работу со строковыми выражениями в VB прям в гугле...
...
Рейтинг: 0 / 0
Выгрузка из Эксель в текстовый документ без разделителей...
    #36595242
igoryava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PlanB,

Блин, вообще скоро голова расколется((...Может еще какие подказки будут?
...
Рейтинг: 0 / 0
Выгрузка из Эксель в текстовый документ без разделителей...
    #36595359
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
igoryava,
prn не пробовали?:
Код: plaintext
1.
2.
 If (CommonDialog1.Filename <> "*.txt") Then ActiveWorkbook.SaveAs Filename:=CommonDialog1.Filename, _
        FileFormat:=xlTextPrinter, CreateBackup:=False
на выходе что-то такое будет, но без табов:
Код: plaintext
1.
2.
3.
4.
        1 
        2 
        3 
        1         2         3 
...
Рейтинг: 0 / 0
Выгрузка из Эксель в текстовый документ без разделителей...
    #36596133
Thermik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторВобщем есть макрос, который берет ДБФ-файл, вытягивает оттуда таблицу в Эксель и с Экселя сохраняет файл в текстовый. Когда открываю полученый текстовый файл (в Фаре), то разделителем столбцов(бывших) являеться Таб. Как сделать так, чтоб при экспорте в текстовый формат строчки были без разделителей (т.е. чтоб были одни пробелы)????




Еще раз открыть файл, заменить ТАВ на пробелы и сохранить снова.
...
Рейтинг: 0 / 0
Выгрузка из Эксель в текстовый документ без разделителей...
    #36598703
igoryava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Thermik

Еще раз открыть файл, заменить ТАВ на пробелы и сохранить снова.

Так а если 1500 строк, то в каждой стоке убирать Табы?)))
...
Рейтинг: 0 / 0
Выгрузка из Эксель в текстовый документ без разделителей...
    #36598768
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
igoryava, у Вас AT386? :)
...
Рейтинг: 0 / 0
Выгрузка из Эксель в текстовый документ без разделителей...
    #36598820
igoryava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И еще... Я макрос запускаю на Win2000 SP4, а на ХР работает так, как надо...Что это может быть?
...
Рейтинг: 0 / 0
Выгрузка из Эксель в текстовый документ без разделителей...
    #36598840
Gwa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
igoryavaВобщем есть макрос, который берет ДБФ-файл, вытягивает оттуда таблицу в Эксель ..


Excel открывает dbf-файл без всяких макросов
...
Рейтинг: 0 / 0
Выгрузка из Эксель в текстовый документ без разделителей...
    #36598860
igoryava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gwa,
Просто макросом все автоматизировано, чтобы делать все экспорты одним махом)
...
Рейтинг: 0 / 0
Выгрузка из Эксель в текстовый документ без разделителей...
    #36600066
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
igoryavaThermik

Еще раз открыть файл, заменить ТАВ на пробелы и сохранить снова.

Так а если 1500 строк, то в каждой стоке убирать Табы?)))ДА, я за написал как...прочитайте про работу со стораками, это самые азы...потом пригодится
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Выгрузка из Эксель в текстовый документ без разделителей...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]