powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / из VB в Word -е скопировать таблицу
16 сообщений из 16, страница 1 из 1
из VB в Word -е скопировать таблицу
    #33582626
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, кто знает.
Есть шаблон с таблицей в Word-е, заполняю его из VB, теперь надо просто взять получившуюся таблицу с данными в Word и скопировать ее на тот же лист только ниже строчкой. Т.е. при печати отчета эта таблица должна выходить в 2-х экземплярах.
Делать шаблон с двумя таблицами и заполнять каждую отдельно неудобно, по многим причинам.

Сразу кусок кода если понадобится:
Код: plaintext
1.
2.
3.
4.
5.
6.
Set TableWord = DocWord.Tables( 1 )
TableWord.Cell( 1 ,  1 ).Range.Text = MainForm.NamePr
TableWord.Cell( 2 ,  1 ).Range.Text = MainForm.Bank
. и т.д.

а теперь все что получилось скопировать ниже.
...
Рейтинг: 0 / 0
из VB в Word -е скопировать таблицу
    #33583083
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
    Dim tbl As Table
    Dim rng As Range
    
    With ActiveDocument
        Set rng = .Paragraphs(.Paragraphs.Count).Range
        Set tbl = .Tables( 1 )
    End With
    
    tbl.Range.Copy
    
    With rng
        .InsertParagraphAfter
        .Collapse Direction:=wdCollapseEnd
        .Paste
    End With
...
Рейтинг: 0 / 0
из VB в Word -е скопировать таблицу
    #33585593
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо работает. Уж прости за нескромность, не работал с Word никогда. Последний вопрос: как вставить пустые строки между таблицами, т.е. определить расстояние между копиями? У меня это разделительная полоса.
...
Рейтинг: 0 / 0
из VB в Word -е скопировать таблицу
    #33585772
Andrey13Как вставить пустые строки между таблицами?
Код: plaintext
    .InsertParagraphAfter
...
Рейтинг: 0 / 0
из VB в Word -е скопировать таблицу
    #33587355
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пользователь2, спасибо.
...
Рейтинг: 0 / 0
из VB в Word -е скопировать таблицу
    #33588494
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 

    Dim tbl As Table
    Dim rng As Range

      With ActiveDocument
        Set rng = .Paragraphs(.Paragraphs.Count).Range
        Set Tbl = .Tables( 1 )
    End With

With ActiveDocument - выдает иногда ошибку Run-time 462 "Remote server does not exist or is unavailable."

Иногда -это при повторном выполнении кода (выводе отчета в Word), .

Вопрос такой от чего может возникать эта ошибка?
"Дистанционный сервер не существует или отсутствует"
...
Рейтинг: 0 / 0
из VB в Word -е скопировать таблицу
    #33588497
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что надо написать, что бы отменить DocWord.Activate предыдущего документа, при повторном открытии следующего?
...
Рейтинг: 0 / 0
из VB в Word -е скопировать таблицу
    #33588667
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
    Dim oWord As Word.Application
    Dim oTable As Word.Table
    Dim oRange As Word.Range

    Set oWord = CreateObject("Word.Application")
    
    With oWord
        .Visible = True
        .Activate
        .WindowState = wdWindowStateNormal
    End With

    With oWord.ActiveDocument
        Set oRange = .Paragraphs(.Paragraphs.Count).Range
        Set oTable = .Tables( 1 )
    End With

Т.е.

Код: plaintext
    With ActiveDocument

Надо поменять на

Код: plaintext
    With oWord.ActiveDocument

Вот первая и вторая статья на эту тему.
...
Рейтинг: 0 / 0
из VB в Word -е скопировать таблицу
    #33597975
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, помогло.
...
Рейтинг: 0 / 0
из VB в Word -е скопировать таблицу
    #33609604
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По вышеприведенному коду у меня все работает (Xp sp2, Off2000), а на некоторых компах выдает что моя программа выполнила недопустимую операцию, (на разных системах, и Off2000 или XP).
В чем может быть дело?
...
Рейтинг: 0 / 0
из VB в Word -е скопировать таблицу
    #33609872
Слету трудно сказать в чем причина. Надо посмотреть на полный вариант кода. Узнать на какой именно строке возникает ошибка.
...
Рейтинг: 0 / 0
из VB в Word -е скопировать таблицу
    #33610008
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
Private Sub M_REPORT_Click()
 Dim Tbl As Table
 Dim rng As Range

Dolg = Round(Label13,  2 )
FormDolg.Text1 = Dolg
FormDolg.Show  1 

Dim WordApp As Word.Application 
Dim DocWord As Word.Document 
Dim TableWord As Word.Table

nameRP = "IzvR"

Set WordApp = New Word.Application
WordApp.Visible = True
Set DocWord = WordApp.Documents.Open(App.Path + "\rep\" + nameRP + ".doc")
DocWord.Activate

On Error GoTo est
If Err.Number <>  5356  Then
DocWord.SaveAs (App.Path + "\Temp\" + nameRP)

est:
 End If
If Err.Number =  5356  Then
Err.Clear
nameRP = Trim(Trim(nameRP) + Trim(Str(Int(Rnd() *  1000 ))))
DocWord.SaveAs (App.Path + "\Temp\" + nameRP + ".doc")
End If

WordApp.Options.CheckSpellingAsYouType = False
Set DocWord = WordApp.Documents.Open(App.Path + "\Temp\" + nameRP + ".doc")
DocWord.Activate
Set TableWord = DocWord.Tables( 1 )
TableWord.Cell( 1 ,  1 ).Range.Text = MainForm.NamePr
TableWord.Cell( 2 ,  1 ).Range.Text = MainForm.Bank
TableWord.Cell( 3 ,  2 ).Range.Text = MainForm.BIK
TableWord.Cell( 3 ,  4 ).Range.Text = MainForm.KS
TableWord.Cell( 4 ,  4 ).Range.Text = MainForm.RS
TableWord.Cell( 4 ,  2 ).Range.Text = MainForm.INN
TableWord.Cell( 5 ,  2 ).Range.Text = Filter.Fg.TextMatrix(Filter.Fg.Row,  11 )
TableWord.Cell( 6 ,  1 ).Range.Text = Filter.Fg.TextMatrix(Filter.Fg.Row,  2 ) + " " + Filter.Fg.TextMatrix(Filter.Fg.Row,  3 ) + " " + Filter.Fg.TextMatrix(Filter.Fg.Row,  4 )
TableWord.Cell( 8 ,  1 ).Range.Text = Filter.Fg.TextMatrix(Filter.Fg.Row,  5 ) + " Êâ ¹" + Filter.Fg.TextMatrix(Filter.Fg.Row,  9 )
TableWord.Cell( 10 ,  2 ).Range.Text = MainForm.Label8 + " ã."

If Val(Label10) <>  0  Then
DocWord.Tables( 1 ).Rows.Add
TableWord.Cell( 14 ,  1 ).Range.Text = fg1.TextMatrix(fg1.Row,  1 )
TableWord.Cell( 14 ,  2 ).Range.Text = Dolg
End If

   
    
    With WordApp.ActiveDocument
        Set rng = .Paragraphs(.Paragraphs.Count).Range
        Set Tbl = .Tables( 1 )
    End With
    
       rng.ParagraphFormat.Alignment = wdAlignParagraphRight
       rng.InsertAfter NumStr(Dolg, True)
    
    Tbl.Range.Copy
    
    With rng
        .InsertParagraphAfter
        .InsertParagraphAfter
        .InsertParagraphAfter
        .InsertParagraphAfter
        .InsertParagraphAfter
        .Collapse Direction:=wdCollapseEnd
        .Paste
    End With
      
End Sub

В какой строке отловить не могу, т.к. у меня все работает, а на других компах нет VB. (хотя можно было поехать потратить время, установить, и проверить). Но там нет возможности долго сидеть и разбираться.
Надеюсь на помощь.
...
Рейтинг: 0 / 0
из VB в Word -е скопировать таблицу
    #33610014
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Файл Word
...
Рейтинг: 0 / 0
из VB в Word -е скопировать таблицу
    #33618579
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
Dim rng As Range
.
.
With WordApp.ActiveDocument
Set rng = .Paragraphs(.Paragraphs.Count).Range
Недопустимый тип Run time -13

Помогите.
...
Рейтинг: 0 / 0
из VB в Word -е скопировать таблицу
    #33618590
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отвечаю сам себе
Код: plaintext
Dim rng As Word.Range
...
Рейтинг: 0 / 0
из VB в Word -е скопировать таблицу
    #33624955
kminas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как скопировать таблицу из Word в AutoCAD? При копировании вставкой формат не выдерживается.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / из VB в Word -е скопировать таблицу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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