Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2012, 10:17   #1
to_south
 
Регистрация: 22.11.2012
Сообщений: 4
По умолчанию Автоматическая разноска данных из текст. файла в форму WORD

Добрый день! Есть простой текстовый файл со строкой данных, разделенных знаком &. Нужно в Ворде нарисовать форму с полями и чтобы этот текстовый файл автоматом втягивался и разносились данные по полям. Как это решить пока совершенно не представляю... Помогите, пожалуйста, разобраться с этой задачей.
to_south вне форума Ответить с цитированием
Старый 27.11.2012, 12:46   #2
to_south
 
Регистрация: 22.11.2012
Сообщений: 4
По умолчанию

Неужели никто не знает, хотя бы как в общем сделать?
to_south вне форума Ответить с цитированием
Старый 27.11.2012, 14:46   #3
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию

--ГДЕ ТЕКСТОВЫЙ ФАЙЛ
--ПРОЧИТАТЬ --ОТРЕДАКТИРОВАТЬ И ЗАПИСАТЬ НАЗАД
--ИЛИ ПРОЧИТАТЬ И ЗАПИСАТЬ В ВОРД-ДОКУМЕНТ
-----------
просите что=то сделать, не дав никакой онформации
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 28.11.2012, 12:13   #4
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Знаем как сделать, но условия задачи очень не конкретные. В нижеприведённом коде "рисуется" форма с полями, текстовый файл "автоматом втягивается" и разносятся данные по полям. Код макроса вставить в новый модуль
Код:
Option Explicit
Dim arFields As Variant
Sub Test()
    Dim oFrm
    Dim sFileName As String
    
    With Application.FileDialog(msoFileDialogFilePicker)
        .Title = "Открыть файл"
        .ButtonName = "Открыть"
        .Filters.Clear: .Filters.Add "Все файлы", "*.*"
        If .Show Then
            sFileName = .SelectedItems(1)
        Else
            Exit Sub
        End If
    End With
    
    Dim FileNum As Byte: FileNum = FreeFile
    Dim sBuff As String
    Open sFileName For Binary As FileNum
    sBuff = Space(LOF(FileNum))
    Get #FileNum, , sBuff
    Close FileNum
    
    If Len(Trim(sBuff)) = 0 Then Exit Sub
    
    arFields = Split(sBuff, "&")
    
    Set oFrm = ThisDocument.VBProject.VBComponents.Add(3)
    Dim sCode As String
    
    sCode = sCode & "Sub UserForm_Initialize()" & vbCrLf
    sCode = sCode & vbTab & "GetControlsForForm Me, " & UBound(arFields) & vbCrLf
    sCode = sCode & "End Sub" & vbCrLf
    oFrm.CodeModule.InsertLines oFrm.CodeModule.CountOfLines + 1, sCode
    
    VBA.UserForms.Add(oFrm.Name).Show
    ThisDocument.VBProject.VBComponents.Remove oFrm
End Sub

Sub GetControlsForForm(oFrm As Object, NumberOfTextboxes As Integer)
    Dim i As Integer
    Dim oTxt As MSForms.TextBox
    Dim iLeft As Integer, iTop As Integer
    Dim iMaxWidth As Integer, iMaxHeight As Integer
    iLeft = 6: iTop = 6
    
    For i = 0 To NumberOfTextboxes
        Set oTxt = oFrm.Controls.Add("Forms.TextBox.1", "txtField" & i)
        With oTxt
            .Text = arFields(i)
            .Left = iLeft: .Top = iTop
            iTop = iTop + .Height
            iMaxWidth = iLeft + .Width + 6
            iMaxHeight = iTop + .Height + 20
        End With
    Next
    oFrm.Height = iMaxHeight: oFrm.Width = iMaxWidth
End Sub
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 30.11.2012, 07:51   #5
to_south
 
Регистрация: 22.11.2012
Сообщений: 4
По умолчанию

Цитата:
Сообщение от shanemac51 Посмотреть сообщение
--ГДЕ ТЕКСТОВЫЙ ФАЙЛ
--ПРОЧИТАТЬ --ОТРЕДАКТИРОВАТЬ И ЗАПИСАТЬ НАЗАД
--ИЛИ ПРОЧИТАТЬ И ЗАПИСАТЬ В ВОРД-ДОКУМЕНТ
-----------
просите что=то сделать, не дав никакой онформации
Простите, прикрепила текстовый файл со строкой данных и пример шаблона формы word. Нужно чтобы при открытии текст. файла поля автоматически разносились по форме.
Вложения
Тип файла: txt test.txt (70 байт, 145 просмотров)
Тип файла: zip test.zip (2.4 Кб, 11 просмотров)
to_south вне форума Ответить с цитированием
Старый 30.11.2012, 07:52   #6
to_south
 
Регистрация: 22.11.2012
Сообщений: 4
По умолчанию

Цитата:
Сообщение от viter.alex Посмотреть сообщение
Знаем как сделать, но условия задачи очень не конкретные. В нижеприведённом коде "рисуется" форма с полями, текстовый файл "автоматом втягивается" и разносятся данные по полям. Код макроса вставить в новый модуль
viter.alex, спасибо! Пока пытаюсь разобраться...
to_south вне форума Ответить с цитированием
Старый 30.11.2012, 10:33   #7
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию

Примерно так
--не прописала только чтение файла
--и не ясно --есть ли зацикливание (например все студенты группы)
Код:
Sub a______________1130()
ss = "Familiya&Волков&Imya&Oleg&Vozrast&28&Gorod&Волгоград&Ulica&Мира&Dom&5&"
Dim xm
xm = Split(ss & "#&#&", "&")
j1 = LBound(xm, 1)
j2 = UBound(xm, 1)
Do While j1 < j2
Debug.Print j1, xm(j1), xm(j1 + 1)
j1 = j1 + 2
Loop
j1 = LBound(xm, 1)

Word.ActiveDocument.SaveAs "c:\RAB\" & xm(j1 + 1) & "_" & xm(j1 + 3) & "_" & xm(j1 + 5) & ".DOCX"

''''''''''''''''''''''
Dim zakl As Bookmark
j31 = Word.ActiveDocument.Bookmarks.Count
Do While j31 > 0
Set zakl = Word.ActiveDocument.Bookmarks(j31)
j1 = LBound(xm, 1)
Do While j1 < j2
Debug.Print zakl.Name
If xm(j1) = zakl.Name Then
zakl.Range.Text = xm(j1 + 1)
'Debug.Print zakl.Range.Text
Exit Do
End If
j1 = j1 + 2
Loop
j31 = j31 - 1
Loop

End Sub
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоматический перенос данных с таблиц Excel в текст Word YSL Microsoft Office Word 52 27.06.2021 05:01
Считывание данных из файла и занесение их на форму Amnelis C# (си шарп) 0 13.06.2012 12:04
Автоматическая нумерация в таблице word SilverSmallFish Microsoft Office Word 5 27.04.2010 06:43
Вывод данных из файла в форму. Delphi. NightShade Помощь студентам 8 25.01.2009 10:30
Вывод данных BMP файла на форму Vasya Фриланс 18 24.03.2007 00:59