powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Получить цифры из word
25 сообщений из 47, страница 1 из 2
Получить цифры из word
    #36622812
beaver06
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, пожалуйста, как можно из файла во вложении получить следующие данные: № и значения столбцов. Все это скопировать в excel с такими столбцами: №, Тариф, кВтч/кВт и т.д.
...
Рейтинг: 0 / 0
Получить цифры из word
    #36622828
beaver06
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А вот и файл
...
Рейтинг: 0 / 0
Получить цифры из word
    #36622952
beaver06
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно и не в excel, а напр. в txt
...
Рейтинг: 0 / 0
Получить цифры из word
    #36625885
beaver06
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Люди, помогите пожалуйста. Срочно надо... Единственное что получилось - это сконвертировать в pdf, а затем в excel...
...
Рейтинг: 0 / 0
Получить цифры из word
    #36626102
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
beaver06,
ну можно закопипастить в Эксель и циклом по столбцу пройтись.
Можно в текст сохранить и его скриптом/макросом в Эксель загружать - уже по одному клиенту целиком в строку.
...
Рейтинг: 0 / 0
Получить цифры из word
    #36626122
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я бы наверное лучше сохранил текст и его перебирал - по 22 строки на клиента (надеюсь, всё время так?).
22 значения в строку, следующие 22 в следующую и т.д. Можно ненужные пропускать.
...
Рейтинг: 0 / 0
Получить цифры из word
    #36626131
beaver06
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hugo121Я бы наверное лучше сохранил текст и его перебирал - по 22 строки на клиента (надеюсь, всё время так?).
22 значения в строку, следующие 22 в следующую и т.д. Можно ненужные пропускать.

Несколько сотен строк, несколько раз в месяц. А если где-то пустые значения, тогда что?
...
Рейтинг: 0 / 0
Получить цифры из word
    #36626164
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
beaver06,
нам сотни нипочём. А вот если пустые, тогда цикл от № до №. Но конечно надо смотреть, может так и не получится, если например в оплате будут выпаднения. Но ведть там скорее всего будет 0.00. А названия столбцов не нужны. Можно вообще брать только строку после "№" и четыре после "Оплата".
...
Рейтинг: 0 / 0
Получить цифры из word
    #36626842
beaver06,
примерное решение. На представленых Вами данных отрабатывает без ошибок.
процедуру добавить в модуль обрабатываемого документа
Код: 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.
Sub ExpToXL()
Dim xlApp As Object, wkS As Object
Dim i As Long, k As Long

'открыть Excel, создать новую книгу, дать ссылку на первый лист
Set xlApp = CreateObject("Excel.Application")
Set wkS = xlApp.workbooks.Add.worksheets( 1 )

i =  1 
k =  1 
On Error GoTo Err
'цикл по всем _абзацам_ (и кто так строит!?) документа
Do Until i > Paragraphs.Count
If Left$(Paragraphs(i).Range.Text,  1 ) = "№" Then
    'нашли "строку" с номером, проверили, есть ли сам номер
    If i +  1  > Paragraphs.Count Then Exit Do
    'записали значение номера в Excel
    'rem убираем переводы строк
    wkS.Cells(k,  1 ) = Trim$(Replace(Paragraphs(i +  1 ).Range.Text, vbCr, ""))
    i = i +  1 
ElseIf Left$(Paragraphs(i).Range.Text,  6 ) = "Оплата" Then
    'нашли "строку" с цЫфрами, проверили, есть ли все поля
    If i +  5  > Paragraphs.Count Then Exit Do
    With wkS
        'записали значения цЫфр в Excel
        'NB! порядок абзацев в "строке" цЫфр отличается отвизуального
        '     в Excel выгружаем так, чтобы порядок соответствовал визуальному
        '     убираем переводы строк, разделители разрядов и концевые пробелы
        .Cells(k,  2 ) = Trim$(Replace(Replace(Paragraphs(i +  5 ).Range.Text, vbCr, ""), Chr( 160 ), ""))
        .Cells(k,  3 ) = Trim$(Replace(Replace(Paragraphs(i +  4 ).Range.Text, vbCr, ""), Chr( 160 ), ""))
        .Cells(k,  4 ) = Trim$(Replace(Replace(Paragraphs(i +  3 ).Range.Text, vbCr, ""), Chr( 160 ), ""))
        .Cells(k,  5 ) = Trim$(Replace(Replace(Paragraphs(i +  2 ).Range.Text, vbCr, ""), Chr( 160 ), ""))
        .Cells(k,  6 ) = Trim$(Replace(Replace(Paragraphs(i +  1 ).Range.Text, vbCr, ""), Chr( 160 ), ""))
    End With
    i = i +  5 
    k = k +  1 
End If
i = i +  1 
Loop

Err:
If Err.Number <>  0  Then
    MsgBox Err.Number & vbCrLf & Err.Description, vbExclamation, "dung happens"
    Err.Clear
End If
Set wkS = Nothing
xlApp.Visible = True
Set xlApp = Nothing
End Sub
...
Рейтинг: 0 / 0
Получить цифры из word
    #36626905
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если не поздно,
спасибо, хороший код всегда "не поздно". С Вордом примеров мало хороших, я себе сохранил, не дай Бог пригодится
Вот только из модуля работать не захотел, я из документа запускал.
И как Вы там разобрались - на неполных 3 клиента 59 параграфов
...
Рейтинг: 0 / 0
Получить цифры из word
    #36626917
Фотография vlth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hugo121, я везде 'Paragraphs' заменил на 'ThisDocument.Paragraphs' - так в модуле работает...
...
Рейтинг: 0 / 0
Получить цифры из word
    #36626936
Hugo121, vlth
с "процедуру добавить в модуль обрабатываемого документа" - действительно лажу написал, спасибо что поправили.
...
Рейтинг: 0 / 0
Получить цифры из word
    #36627196
beaver06
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если не поздноHugo121, vlth
с "процедуру добавить в модуль обрабатываемого документа" - действительно лажу написал, спасибо что поправили.

Спасибо большое за участие, щас попробую...
...
Рейтинг: 0 / 0
Получить цифры из word
    #36627209
beaver06
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если не поздноbeaver06,
примерное решение. На представленых Вами данных отрабатывает без ошибок.
+
процедуру добавить в модуль обрабатываемого документа
Код: 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.
Sub ExpToXL()
Dim xlApp As Object, wkS As Object
Dim i As Long, k As Long

'открыть Excel, создать новую книгу, дать ссылку на первый лист
Set xlApp = CreateObject("Excel.Application")
Set wkS = xlApp.workbooks.Add.worksheets( 1 )

i =  1 
k =  1 
On Error GoTo Err
'цикл по всем _абзацам_ (и кто так строит!?) документа
Do Until i > Paragraphs.Count
If Left$(Paragraphs(i).Range.Text,  1 ) = "№" Then
    'нашли "строку" с номером, проверили, есть ли сам номер
    If i +  1  > Paragraphs.Count Then Exit Do
    'записали значение номера в Excel
    'rem убираем переводы строк
    wkS.Cells(k,  1 ) = Trim$(Replace(Paragraphs(i +  1 ).Range.Text, vbCr, ""))
    i = i +  1 
ElseIf Left$(Paragraphs(i).Range.Text,  6 ) = "Оплата" Then
    'нашли "строку" с цЫфрами, проверили, есть ли все поля
    If i +  5  > Paragraphs.Count Then Exit Do
    With wkS
        'записали значения цЫфр в Excel
        'NB! порядок абзацев в "строке" цЫфр отличается отвизуального
        '     в Excel выгружаем так, чтобы порядок соответствовал визуальному
        '     убираем переводы строк, разделители разрядов и концевые пробелы
        .Cells(k,  2 ) = Trim$(Replace(Replace(Paragraphs(i +  5 ).Range.Text, vbCr, ""), Chr( 160 ), ""))
        .Cells(k,  3 ) = Trim$(Replace(Replace(Paragraphs(i +  4 ).Range.Text, vbCr, ""), Chr( 160 ), ""))
        .Cells(k,  4 ) = Trim$(Replace(Replace(Paragraphs(i +  3 ).Range.Text, vbCr, ""), Chr( 160 ), ""))
        .Cells(k,  5 ) = Trim$(Replace(Replace(Paragraphs(i +  2 ).Range.Text, vbCr, ""), Chr( 160 ), ""))
        .Cells(k,  6 ) = Trim$(Replace(Replace(Paragraphs(i +  1 ).Range.Text, vbCr, ""), Chr( 160 ), ""))
    End With
    i = i +  5 
    k = k +  1 
End If
i = i +  1 
Loop

Err:
If Err.Number <>  0  Then
    MsgBox Err.Number & vbCrLf & Err.Description, vbExclamation, "dung happens"
    Err.Clear
End If
Set wkS = Nothing
xlApp.Visible = True
Set xlApp = Nothing
End Sub


Что-то у меня открывает excel и он пустой. В чем может быть дело?
...
Рейтинг: 0 / 0
Получить цифры из word
    #36627217
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
beaver06, добавьте в код строку
Msgbox Paragraphs.Count
Если покажет цифры 59 - будем дальше искать, а если пустое окно - вот как раз то, о чём выше гоаорили.
...
Рейтинг: 0 / 0
Получить цифры из word
    #36627218
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Например после строк
i = 1
k = 1
...
Рейтинг: 0 / 0
Получить цифры из word
    #36627225
beaver06
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hugo121beaver06, добавьте в код строку
Msgbox Paragraphs.Count
Если покажет цифры 59 - будем дальше искать, а если пустое окно - вот как раз то, о чём выше гоаорили.

Пусто, и куда дальше копать?
...
Рейтинг: 0 / 0
Получить цифры из word
    #36627227
beaver06
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
beaver06Hugo121beaver06, добавьте в код строку
Msgbox Paragraphs.Count
Если покажет цифры 59 - будем дальше искать, а если пустое окно - вот как раз то, о чём выше гоаорили.

Пусто, и куда дальше копать?

если MsgBox Paragraphs.Count то error 424 object required. Если MsgBox Paragraphs то пустой msgbox.
...
Рейтинг: 0 / 0
Получить цифры из word
    #36627250
Фотография vlth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beaver06,

выше
...
Рейтинг: 0 / 0
Получить цифры из word
    #36627259
beaver06
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vlthbeaver06,

выше

А что выше?
Это - я везде 'Paragraphs' заменил на 'ThisDocument.Paragraphs' . Я так и сделал - все равно пусто...
...
Рейтинг: 0 / 0
Получить цифры из word
    #36627264
Фотография vlth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beaver06, ну как же везде?
MsgBox Paragraphs .Count то error 424 object required. Если MsgBox Paragraphs то пустой msgbox
...
Рейтинг: 0 / 0
Получить цифры из word
    #36627280
beaver06
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vlthbeaver06, ну как же везде?
MsgBox Paragraphs .Count то error 424 object required. Если MsgBox Paragraphs то пустой msgbox

Понял... Выдает 1
...
Рейтинг: 0 / 0
Получить цифры из word
    #36627282
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
beaver06, вообще я обычно гоню код по F8 и смотрю, что делается. Т.к. было видно, что внутрь цикла код не заходил, я проверил, видит ли он вообще параграфы, можно через мессидж, а я через дебуг.принт смотрел. Это так, технология, чтоб сам учился разбираться...
...
Рейтинг: 0 / 0
Получить цифры из word
    #36627302
beaver06
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hugo121beaver06, вообще я обычно гоню код по F8 и смотрю, что делается. Т.к. было видно, что внутрь цикла код не заходил, я проверил, видит ли он вообще параграфы, можно через мессидж, а я через дебуг.принт смотрел. Это так, технология, чтоб сам учился разбираться...

Это-то я вижу. Так ThisDocument.Paragraphs.Count равен 0, и поэтому чицкл проходит только один раз и сваливает
...
Рейтинг: 0 / 0
Получить цифры из word
    #36627339
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
beaver06, ну вот. А в Вашем файле 59 параграфов.
...
Рейтинг: 0 / 0
25 сообщений из 47, страница 1 из 2
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Получить цифры из word
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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