Страница: 1 |
Страница: 1 |
Вопрос: Перенос данных из Excel в текстовый файл
Добавлено: 04.05.09 14:48
Автор вопроса: Таня | ICQ: 410031407
Есть таблица в Excel с данными
ТБН Счет %
0125 57 736,07р.
0126 57 679,45р.
как реализовать процедуру переноса данных таблицы в текстовый файл, выходной файл должен иметь такую структуру
0125 57 736.07
0126 57 679.45
Ответы
Всего ответов: 14
Номер ответа: 1
Автор ответа:
Arvitaly
ICQ: 301746136
Вопросов: 28
Ответов: 549
Web-сайт:
Профиль | | #1
Добавлено: 04.05.09 15:17
ммм,
Open file for Output as 1
str=range("a2" & range("b2" ......
print 1,str
close 1
Номер ответа: 2
Автор ответа:
Таня
ICQ: 410031407
Вопросов: 11
Ответов: 23
Профиль | | #2
Добавлено: 04.05.09 15:34
а можно поподробнее объяснить ход действий, мне не понятно
Номер ответа: 3
Автор ответа:
Arvitaly
ICQ: 301746136
Вопросов: 28
Ответов: 549
Web-сайт:
Профиль | | #3
Добавлено: 04.05.09 15:45
http://www.specialist.ru/programs/course.asp?idc=848
Номер ответа: 4
Автор ответа:
Таня
ICQ: 410031407
Вопросов: 11
Ответов: 23
Профиль | | #4
Добавлено: 04.05.09 15:51
очень смешно..
Номер ответа: 5
Автор ответа:
Arvitaly
ICQ: 301746136
Вопросов: 28
Ответов: 549
Web-сайт:
Профиль | | #5
Добавлено: 04.05.09 16:15
Хорошо можешь мне заплатить
Номер ответа: 6
Автор ответа:
AngryBadger
Вопросов: 33
Ответов: 245
Профиль | | #6
Добавлено: 04.05.09 16:39
Dim FileNum
Dim FileName As String
Dim Str As String
Dim MyRange As Range
FileNum = FreeFile
FileName = InputBox("Введи имя файла:"
Set MyRange = Selection 'Для того чтобы все работала выдели все ячейки из которых будешь выгружать данные
Open "C:\" & FileName & ".txt" For Output As #FileNum 'Вместо С:\ напиши путь куда будешь сохранять файл
For Each Cell In MyRange
Str = Replace(Cell, "р.", ""
Print #FileNum, Str
Next Cell
Close #FileNum
CreateObject("WScript.Shell".Run "C:\" & FileName & ".txt"
End Sub
Номер ответа: 7
Автор ответа:
Таня
ICQ: 410031407
Вопросов: 11
Ответов: 23
Профиль | | #7
Добавлено: 05.05.09 11:18
Михаил a.k.a. AngryBadger, болшое спасибо за помощь, единственное, появилась проблемка: при переносе в текстовый файл, данные переносятся таким образом:
0125
57
736.07
0126
57
679.45
а нужно ,чтобы как в начальном файле .xls
0125 57 736.07
0126 57 679.45
т.е , чтобы данные заносились в строку, заранее спасибо
Номер ответа: 8
Автор ответа:
AngryBadger
Вопросов: 33
Ответов: 245
Профиль | | #8
Добавлено: 05.05.09 11:56
А у Вас, как я понимаю, число растянуто на 3 ячейки?
Номер ответа: 9
Автор ответа:
AngryBadger
Вопросов: 33
Ответов: 245
Профиль | | #9
Добавлено: 05.05.09 12:05
¬¦¬г¬Э¬Ъ ¬п¬д¬а ¬д¬С¬Ь, ¬д¬а:
Dim FileNum
Dim FileName As String
Dim Str As String
Dim MyRange As Range
Dim i As Double
FileNum = FreeFile
FileName = InputBox("¬Ј¬У¬Ц¬Х¬Ъ¬д¬Ц ¬Я¬С¬Щ¬У¬С¬Я¬Ъ¬Ц ¬ж¬С¬Ы¬Э¬С ¬Х¬Э¬с ¬У¬н¬Ф¬в¬е¬Щ¬Ь¬Ъ:"
Set MyRange = Selection
Open "C:\" & FileName & ".txt" For Output As #FileNum
For i = 1 To MyRange.Rows.Count
Str = MyRange.Cells(i, 1) & " " & MyRange.Cells(i, 2) & " " & Replace(MyRange.Cells(i, 3), "©Ј.", ""
Print #FileNum, Str
Next i
Close #FileNum
CreateObject("WScript.Shell".Run "C:\" & FileName & ".txt"
End Sub
Номер ответа: 10
Автор ответа:
AngryBadger
Вопросов: 33
Ответов: 245
Профиль | | #10
Добавлено: 05.05.09 12:09
Если это так то, смотри код выше. В скобках у инпутбокса "Введи имя файла:"
В цикле For - Next:
Print #FileNum, Str
Номер ответа: 11
Автор ответа:
Таня
ICQ: 410031407
Вопросов: 11
Ответов: 23
Профиль | | #11
Добавлено: 05.05.09 13:23
Да, спасибки, теперь то, что надо, но я не предусмотрела, что на листе Excel по столбцу №3 у меня стоит фильтр. Так вот надо,чтобы только отфильтрованные данные попадали в текстовый файл, а он отправляет всю инфу, подскажите, пожалуйста,как это реализовать
Номер ответа: 12
Автор ответа:
AngryBadger
Вопросов: 33
Ответов: 245
Профиль | | #12
Добавлено: 05.05.09 15:45
Вроде работает
Dim FileNum
Dim FileName As String
Dim Str As String
Dim MyRange As Range
Dim i As Double
Dim k As Double
Dim MyArray As Variant
Dim Item As Variant
FileNum = FreeFile
FileName = InputBox("Введи имя файла для выгрузки:"
Set MyRange = Selection.SpecialCells(xlCellTypeVisible)
Open "C:\" & FileName & ".txt" For Output As #FileNum
ReDim MyArray(MyRange.Cells.Count)
For Each Item In MyRange
i = i + 1
MyArray(i) = Item
Next Item
For i = 1 To MyRange.Cells.Count / MyRange.Columns.Count
Str = MyArray(i + k) & " " & MyArray(i + k + 1) & " " & Replace(MyArray(i + k + 2), "р.", ""
k = k + 2
Print #FileNum, Str
Next i
Close #FileNum
CreateObject("WScript.Shell".Run "C:\" & FileName & ".txt"
End Sub
Номер ответа: 13
Автор ответа:
Таня
ICQ: 410031407
Вопросов: 11
Ответов: 23
Профиль | | #13
Добавлено: 05.05.09 16:35
Да, на самом деле работает, как приятно, что есть такие люди как Вы Михаил a.k.a. AngryBadger, которые помогают нам чайникам. Но у меня возник еще вопрос, а если мне понадобится значения не из всех столбцов, а например из 1 и 3, а если их будет не 3, например 7, и понадобится из 1 и 7, как такой случай реализовать, подскажите ,пожалуйста
Номер ответа: 14
Автор ответа:
AngryBadger
Вопросов: 33
Ответов: 245
Профиль | | #14
Добавлено: 05.05.09 17:04
В MyArray у тебя подряд записаны значения выделенных тобой ячеек, поэтому изменяя строку
ты можешь получать разные результаты, например выделев свои ячейки и изменив строку на
ты получишь значение из 1 и 3 ячейки