powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Из Ворда в Эксель
25 сообщений из 49, страница 1 из 2
Из Ворда в Эксель
    #36565131
Привет всем! Совсем не знаю как быть... Есть в Ворде файл Export.doc - он меняется каждый месяц и в нем около 100000 записей, в общем больше чем может вместиться на листе экселя. Помогите, пожалуйста, написать макрос, который будет загонять из ворда данные на лист эксель, а когда лист1 закончится, то продлжит копировать эти данные на лист2. Пожалуйста!!!
...
Рейтинг: 0 / 0
Из Ворда в Эксель
    #36565350
Фотография Serge 007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Новенькая123, скиньте данные в Акцесс.
Или установите Эксель 2007 - 2010.
...
Рейтинг: 0 / 0
Из Ворда в Эксель
    #36565379
Serge 007, спасибо что откликнулись! Там данные идут так что Дата на строчку выше остальных данных и мне приходится вначале макросом проставлять Дату на соответствующую строку вниз, а затем делать обработки, если я открою в акцессе, то получится что строка 1 содержит Дату, а строка 2 - остальные данные, затем 3 путсые и опять - Дата - Данные, это все копируется из левого приложения, а обрабатывать надо в экселе - там много операций и автофильтр и перевод из текста в число и ВПР используется и все надо сделать одной кнопкой - сделала все, но строк получается очень много и самое страшное почему нельзя использовать акцесс - дата на разных строчках, причем экспортируется в вворд интересно - в начале страницы - дата прямо в предыдущей строчке, дальше по листу - через строчку...
2007 офис не куплен...
Как быть... :-(
...
Рейтинг: 0 / 0
Из Ворда в Эксель
    #36565403
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Новенькая123, можете файл строк на надцать показать?
...
Рейтинг: 0 / 0
Из Ворда в Эксель
    #36565418
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может быть сохранить из Ворда в текст (если можно), далее в тексте скриптом навести порядок - строк станет в 2 раза меньше, затем скриптом же можно грузить в Эксель, ну или уже импортом, как положено.
...
Рейтинг: 0 / 0
Из Ворда в Эксель
    #36565421
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нев 2, а в 4-5 раз меньше...
...
Рейтинг: 0 / 0
Из Ворда в Эксель
    #36565479
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Т.е. можно так текст преобразовать (если данные позволяют) -
читаем построчно,
если в начале строки дата - пишем в другой файл без перевода строки,
если пусто - пропускаем,
если есть данные и в начале не дата - пишем с переводом строки.
Можно ещё разделители между датой и данными поставить.
Наверное также можно и из Ворда читать, но я не знаю синтаксис.
...
Рейтинг: 0 / 0
Из Ворда в Эксель
    #36565521
Фотография Serge 007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Новенькая1232007 офис не куплен...
Как быть... :-(
Зачем покупать?
http://the-universe.ru/soft/74-ofis-2007-skachat-word-2007-besplatno-rus-excel.html
...
Рейтинг: 0 / 0
Из Ворда в Эксель
    #36565695
Hugo121Т.е. можно так текст преобразовать (если данные позволяют) -
читаем построчно,
если в начале строки дата - пишем в другой файл без перевода строки,
если пусто - пропускаем,
если есть данные и в начале не дата - пишем с переводом строки.
Можно ещё разделители между датой и данными поставить.
Наверное также можно и из Ворда читать, но я не знаю синтаксис.

8-) я тоже не знаю как это делать... как макросом читать построчно...
...
Рейтинг: 0 / 0
Из Ворда в Эксель
    #36565729
Вот к примеру текстовый файл :
15.03.10
1010 ввпывп 2120

16.03.10

5262 ыываф 5458



17.03.18
4456 ваывп 5827

и так 100000 записей... как их преобразовать (это очень упрощенный вариант)
...
Рейтинг: 0 / 0
Из Ворда в Эксель
    #36565807
На второй строке после Даты 3 столбца, т.е. весь текст должен быть разбит на 3 столбца
...
Рейтинг: 0 / 0
Из Ворда в Эксель
    #36565983
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Новенькая123,
даты все в таком виде, нет случайно 1.04.10?
Если всё именно так, то должно получиться.
Вообще думаю можно сделать так:
1. запускаем *.vbs
2. диалог выбора вордовского файла.
3. скрипт сохраняет этот файл как word.txt
4. преобразует word.txt в excel.txt
5. открывает заранее приготовленный файл Экселя, который при открытии подгружает данные из excel.txt

Если данных всё же будет набираться больше 65656 строк, можно грузить данные непосредственно в Эксель, считая строки, но это будет дольше.
Можно этот скрипт и в Экселе разместить, и даже поставить его на выполнение при открытии файла.
Но я всё жду - может кто подскажет, как именно из Ворда данные выбирать построчно, какой синтаксис...
...
Рейтинг: 0 / 0
Из Ворда в Эксель
    #36566098
Hugo121Новенькая123,
даты все в таком виде, нет случайно 1.04.10?
Если всё именно так, то должно получиться.
Вообще думаю можно сделать так:
1. запускаем *.vbs
2. диалог выбора вордовского файла.
3. скрипт сохраняет этот файл как word.txt
4. преобразует word.txt в excel.txt
5. открывает заранее приготовленный файл Экселя, который при открытии подгружает данные из excel.txt

Если данных всё же будет набираться больше 65656 строк, можно грузить данные непосредственно в Эксель, считая строки, но это будет дольше.
Можно этот скрипт и в Экселе разместить, и даже поставить его на выполнение при открытии файла.
Но я всё жду - может кто подскажет, как именно из Ворда данные выбирать построчно, какой синтаксис...

Спасибо что не бросаете! Но я не поняла [1. запускаем *.vbs] - я так поняла что Сервис/Макрос/Редактор Visual Basiс, а дальше как - [2. диалог выбора вордовского файла.
] - что это? я пробовала там открыть вордовский файл - ошибку выдает... что-то совсем не понимаю... :-(((
...
Рейтинг: 0 / 0
Из Ворда в Эксель
    #36566165
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Новенькая123, нет, это я про скрипт wsh говорю.
Вот для начала - выбираете в запросе свой сохранённый уже txt, на выходе преобразованный C:\temp\_excel.txt
Сперва попробуйте на маленьком файле, чтобы оценить скорость работы.
Код: 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.
'# Диалог открытия файла
   Const ForReading   =  1 
   Const ForAppending   =  8 
   
Set objDialog = CreateObject("UserAccounts.CommonDialog") 
objDialog.Filter = "txt Files|*.txt" 
objDialog.InitialDir = "C:\" 
intResult = objDialog.ShowOpen 
 If intResult =  0  Then 
    Wscript.Quit 
Else 
    toFile =  objDialog.FileName 
End If 

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTS = objFSO.OpenTextFile(toFile, ForReading) 

Set objFile = objFSO.CreateTextFile("C:\temp\_excel.txt")
Set objfile = Nothing
Set objOTS = objFSO.OpenTextFile("C:\temp\_excel.txt", ForAppending)

   Do While objTS.AtEndOfStream <> True
      tmp = objTS.ReadLine()
   if len(tmp) >  7  then
		if isdate(left(tmp,  8 )) then
		objOTS.Write tmp & " "
		else
		  objOTS.WriteLine tmp
		end if
	end if
   Loop

'# очищаем память 
objTS.Close 'закрываем текстовый файл
objOTS.Close 'закрываем текстовый файл

Set objFSO = Nothing
Set objDialog = Nothing
Set objTS = Nothing
Set objOTS = Nothing

tmp = Empty
Wscript.Quit
...
Рейтинг: 0 / 0
Из Ворда в Эксель
    #36566211
Спасибо что не бросаете!!!
Но у меня в результате работы просто образовался пустой файл _excel.txt с размером 0
Все запускается в окне диалога выбираю export.txt и в результате появляется пустой _excel.txt ...
...
Рейтинг: 0 / 0
Из Ворда в Эксель
    #36566222
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Новенькая123,
я делал под Ваш пример, на нём работает.
Там проверяется длина строки, если больше 7, то если первых 8 символов дата, то пишется без перевода строки (с добавлением после строки пробела), иначе с переводом.
Результат:
из
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 15 . 03 . 10 
 1010  ввпывп  2120 

 16 . 03 . 10 

 5262  ыываф  5458 



 17 . 03 . 18 
 4456  ваывп  5827 
получаем
Код: plaintext
1.
2.
 15 . 03 . 10   1010  ввпывп  2120 
 16 . 03 . 10   5262  ыываф  5458 
 17 . 03 . 18   4456  ваывп  5827 
...
Рейтинг: 0 / 0
Из Ворда в Эксель
    #36566234
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если вдруг бывают строки короче 8 символов, можно эту цифру и уменьшить до 1, т.е. поменять на
Код: plaintext
if len(tmp) >=  1  then
...
Рейтинг: 0 / 0
Из Ворда в Эксель
    #36566285
Hugo121Если вдруг бывают строки короче 8 символов, можно эту цифру и уменьшить до 1, т.е. поменять на
Код: plaintext
if len(tmp) >=  1  then


Только пожалуйста не бросайте меня!!! Ситуация - если я использую файл который Вы прислали в архиве, то он работает, но я не могу его редактировать, если я в тело модуля макроса вставляю скрипт который Вы прислали в форуме, то он выдает ошибку Run-time error '424' Object required и выделяет Wscript.Quit
ХОТЯ ДАННЫЕ ПРАВИЛЬНО СРАБАТЫВАЮТ!!!!
Спасибо огромное!!!
В общем я так понимаю на эту ошибку не стоит обрщать внимание!!! СПАСИБО ВАМ ОГРОМНОЕ!!!
...
Рейтинг: 0 / 0
Из Ворда в Эксель
    #36566311
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Новенькая123,
в макрос прямо 1:1 не пойдёт, там чуть подправить надо :) - вместо
Wscript.Quit
надо
Exit Sub
Ну и ещё переменные бы определить, ну это сильно желательно (в wsh им всё равно тип не задаётся, поэтому я не напрягался...)
...
Рейтинг: 0 / 0
Из Ворда в Эксель
    #36566368
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пропустил - как это не можете редактировать? А блокнот?
Я кстати в блокноте и писал, в Notepad++
...
Рейтинг: 0 / 0
Из Ворда в Эксель
    #36566403
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ещё - если
Код: plaintext
objOTS.Write tmp & " "
заменить на
Код: plaintext
objOTS.Write tmp & vbTAB
и файл сохранить даже тупо как C:\temp\_excel.txt.xls, то его можно открывать сразу в Экселе - дата будет в первом столбце, остальное во втором, его разбить стандартным способом. Или в скрипт встроить замену всех пробелов на vbTAB...
Хотя файл так и останется текстовым по содержанию...
...
Рейтинг: 0 / 0
Из Ворда в Эксель
    #36566450
Hugo121Ещё - если
Код: plaintext
objOTS.Write tmp & " "
заменить на
Код: plaintext
objOTS.Write tmp & vbTAB
и файл сохранить даже тупо как C:\temp\_excel.txt.xls, то его можно открывать сразу в Экселе - дата будет в первом столбце, остальное во втором, его разбить стандартным способом. Или в скрипт встроить замену всех пробелов на vbTAB...
Хотя файл так и останется текстовым по содержанию...

СПАСИБО!!!
...
Рейтинг: 0 / 0
Из Ворда в Эксель
    #36566872
Фотография vlth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Новенькая123Вот к примеру текстовый файл :
15.03.10
1010 ввпывп 2120

16.03.10

5262 ыываф 5458



17.03.18
4456 ваывп 5827

и так 100000 записей... как их преобразовать (это очень упрощенный вариант)
Скопировал эти записи в Word... Вот что получилось (если в реальном файле перевод строки иной, работать не будет):
Код: 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.
Sub FromWordToExcel()
Dim oWD As Object, oDoc As Object
Dim strT As String, i As Long, j As Byte, strA() As String, strB() As String
Dim WS As Worksheet, k As Byte, l As Long

Set oWD = CreateObject("Word.Application")
Set oDoc = oWD.Documents.Open _
    ("C:\...Путь...\Export.doc")
strT = oDoc.Content
Do While InStr(strT, Chr( 11 ) & Chr( 11 )) >  0 
    strT = Replace(strT, Chr( 11 ) & Chr( 11 ), Chr( 11 ))
Loop
oWD.Quit
Set oWD = Nothing: Set oDoc = Nothing
strA = Split(strT, Chr( 11 ))
Application.ScreenUpdating = False
For k =  1  To (UBound(strA) +  1 ) \ Application.Rows.Count +  1 
    l =  1 
    With ThisWorkbook.Worksheets(k)
        For i =  0  To UBound(strA)
            strB = Split(Replace(strA(i), vbCr, ""))
            For j =  0  To UBound(strB)
                .Cells(l, j +  1 ) = strB(j)
            Next j
            l = l +  1 
        Next i
    End With
Next k
Application.ScreenUpdating = True
End Sub
Насколько быстро это будет работать реально, на большом кол-ве строк, сказать затрудняюсь
...
Рейтинг: 0 / 0
Из Ворда в Эксель
    #36567063
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vlth, что-то у меня всё в кучку собрал:
15.03.101010 ввпывп 212016.03.105262 ыываф 545817.03.184456 ваывп 5827
А как в Ворде построчно пройтись, не подскажете?
...
Рейтинг: 0 / 0
Из Ворда в Эксель
    #36567133
Фотография vlth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hugo121, проблема может быть в знаке перевода строки: при копировании записей с форума, я получил chr(11). Если вводит их вручную, через Enter, то само-собой, нужно chr(11) заменить на chr(13) (или vbcr).
Обратите внимание: я не использую возможности Ворд, а, получив содержимое файла в строковую переменную, закрываю его.
Навыков работы с Вордом у меня у самого нет
: я потратил сегодня довольно много времени, чтобы понять, как получить содержимое файла.
...
Рейтинг: 0 / 0
25 сообщений из 49, страница 1 из 2
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Из Ворда в Эксель
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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