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

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

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


Blacit
нужные отличаются нумерацией в скобках, например, 70201420000620000017_05011012_31012015(0001)
для функции, которая перебирает файлы можно указать паттерны (например *(*).rtf)
...
Рейтинг: 0 / 0
Разделение страниц на новые файлы
    #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
Разделение страниц на новые файлы
    #39900054
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blacit
Также не совсем понимаю как правильно отформатировать код под vbs на этом форуме, всё нашёл кроме vbs.
просто VB можно
...
Рейтинг: 0 / 0
Разделение страниц на новые файлы
    #39900056
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Selection само по себе в VBS работать не будет, так как он к VBS не относится.
Константы типа wdActiveEndPageNumber тоже объявлены внутри ворда, VBS о них ничего не знает

Предлагаю сначала отладить всё в в ворде, а потом, когда всё заработает, переносить в VBS
...
Рейтинг: 0 / 0
Разделение страниц на новые файлы
    #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
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Разделение страниц на новые файлы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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