Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Разделение страниц на новые файлы / 6 сообщений из 6, страница 1 из 1
09.12.2019, 14:37
    #39900017
Blacit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение страниц на новые файлы
Добрый день, пожалуйста, не злитесь, новичок в этом деле. Видел примеры, но только для файлов .doc
Задача: файл с расширением .rtf и количеством внутренних страниц около 300+ разделить на новые файлы, чтобы для каждой страницы создался новый файл с расширением .rtf и название файла соответствовало строке ИД, например, в приложенном файле на первой странице ИД 5434566, значит название файла 5434566. Проблема также в том, что файл, данные в котором нужно разделять, находится с другими .rtf, нужные отличаются нумерацией в скобках, например, 70201420000620000017_05011012_31012015(0001)
Все остальные файлы, у которых нет скобок и цифр в них - не нужны. Приложу файл, чтобы посмотреть пример (данные вымышленные).

В файле, который прикрепил - только одна странице, даже две нельзя, пишет, что размер приложенного файла превышен.

Может, можете помочь реализовать задачу. Буду сильно благодарен.
...
Рейтинг: 0 / 0
09.12.2019, 14:46
    #39900025
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение страниц на новые файлы
Blacit
Видел примеры, но только для файлов .doc
В общем-то разница будет только при сохранении файлов (нужно будет указать тип rtf), остальное то же самое.


Blacit
нужные отличаются нумерацией в скобках, например, 70201420000620000017_05011012_31012015(0001)
для функции, которая перебирает файлы можно указать паттерны (например *(*).rtf)
...
Рейтинг: 0 / 0
09.12.2019, 15:11
    #39900040
Blacit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение страниц на новые файлы
Пытаюсь воспользоваться данным кодом, но вылезает ошибка "Предполагается наличие инструкции". До этого я уже выше удалил As New Word.Application и прочие AS. Также не совсем понимаю как правильно отформатировать код под vbs на этом форуме, всё нашёл кроме vbs.

Код: vbnet
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.
Sub each_sheet_into_new_document()
'помещает каждый лист в отдельный документ
Dim word_App As New Word.Application
Dim word_Doc As Word.Document
Dim word_Shape As Shape
Selection.HomeKey Unit:=wdStory

pages_count = ActiveDocument.Range.ComputeStatistics(wdStatisticPages)
For i = 1 To pages_count
    Set word_Doc = word_App.Documents.Add
    With word_Doc
    If i = pages_count Then
        Selection.EndKey Unit:=wdStory, Extend:=wdExtend
    Else
        Selection.ExtendMode = True
        Selection.GoToNext wdGoToPage
        Selection.MoveLeft wdCharacter, 1, False
                
    End If
        text_for_input = Selection
        Selection.ExtendMode = False
        Selection.MoveRight wdCharacter, 2, False
        .StoryRanges(wdMainTextStory) = text_for_input
        word_App.Visible = True

        
        If i < 10 Then
            p = "0" & i
        Else
            p = i
        End If
        
        .SaveAs "C:\Лист-" & p & ".rtf"
    End With
Next i

'этот кусок кода переносит shapes в новый документ
        For Each word_Shape In ActiveDocument.Shapes
            'MsgBox ActiveDocument.Shapes.Count
            word_Shape.Select
            p = Selection.Information(wdActiveEndPageNumber)
            If p < 10 Then
                p = "0" & Selection.Information(wdActiveEndPageNumber)
            End If
            Selection.Copy
            word_App.Documents("Лист-" & p & ".rtf").Activate
            word_App.Selection.Paste
        Next word_Shape
        
        For Each doc In word_App.Documents
            doc.Save
        Next doc

Set word_App = Nothing
End Sub
...
Рейтинг: 0 / 0
09.12.2019, 15:17
    #39900054
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение страниц на новые файлы
Blacit
Также не совсем понимаю как правильно отформатировать код под vbs на этом форуме, всё нашёл кроме vbs.
просто VB можно
...
Рейтинг: 0 / 0
09.12.2019, 15:20
    #39900056
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение страниц на новые файлы
Selection само по себе в VBS работать не будет, так как он к VBS не относится.
Константы типа wdActiveEndPageNumber тоже объявлены внутри ворда, VBS о них ничего не знает

Предлагаю сначала отладить всё в в ворде, а потом, когда всё заработает, переносить в VBS
...
Рейтинг: 0 / 0
09.12.2019, 17:24
    #39900254
Blacit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение страниц на новые файлы
Последний вариант, который получилось сделать. Надеюсь, что найдётся человек, который поможет доделать.
Осталось:
1. Для каждой страницы сделать свой файл с расширением .rtf.
2. Название файлов должно соответствовать ИД из выписки.
Вот так выглядит строка, откуда нужно выдернуть ИД для названия файла.
Госпошлина за рассмотрение дела в суде в отношении Иван иванов Иванович (кредитный договор V_LN_423420_25423), (ИД 5434566), НДС нет.
Код: vbnet
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.
Option Explicit

Dim Path, FSO, NameFile, wb, fil, curfold, objEX

'определяем каталог, в котором находимся
Set FSO = CreateObject("Scripting.FileSystemObject")

'сохраняем путь, в котором находимся
Path = FSO.GetParentFolderName(WScript.ScriptFullName)
Set curfold = FSO.GetFolder(Path)

'находим файл .rtf в каталоге и открываем.
If Not curfold Is Nothing Then
For Each fil In curfold.Files
If InStr(1, fil.Name, ".rtf", vbTextCompare) > 0 and (InStr(1, fil.Name, "*(*)*", vbTextCompare) > 0 ) Then
NameFile = fil.Name

Set wb = objEX.Workbooks.Open(Path & "\" & NameFile)

wb.Close False
end if

Next
End If
Set FSO = Nothing 
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Разделение страниц на новые файлы / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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