powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Объединение ячеек в Word
25 сообщений из 27, страница 1 из 2
Объединение ячеек в Word
    #38891960
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.

Заполняю таблицу Ворд из VB.

В некоторых ячейках встречаются повторяющиеся данные. Хочу объединить их в одну ячейку.

Код: vbnet
1.
2.
3.
4.
5.
If TableWord.Cell(i, 10).Range.Text = TableWord.Cell(i - 1, 10).Range.Text Then
              
     ActiveDocument.Tables(1).Cell(i, 10).Merge MergeTo:=ActiveDocument.Tables(1).Cell(i - 1, 10)
          
     End If



Получаю ошибку 4605 "Данная команда не допустима."


Пожалуйста помогите разобраться.
Спасибо.
...
Рейтинг: 0 / 0
Объединение ячеек в Word
    #38892038
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а файл-то будет?

А почему проверяем TableWord, а объединяем ActiveDocument.Tables(1) - это точно одно и то же?

и вообще, не надо пользоваться ActiveDocument
...
Рейтинг: 0 / 0
Объединение ячеек в Word
    #38892176
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да неверно написал код. Вот, другой но ошибка та же.


Код: vbnet
1.
2.
3.
4.
5.
If TableWord.Cell(i, 10).Range.Text = TableWord.Cell(i - 1, 10).Range.Text Then
              
     TableWord.Cell(i, 10).Merge MergeTo:=TableWord.Cell(i - 1, 10)
          
     End If



Файл прикреплен.

И еще вопрос.

Не стал открывать отдельную тему.

Код: vbnet
1.
TableWord.Cell(i, 9).Range.Text = RsKvitK("Shc_new")



если RsKvitK("Shc_new") =1,9, как вывести в Word 1,90 т.е. отформатировать.
Сам не нашел как.
Спасибо.
...
Рейтинг: 0 / 0
Объединение ячеек в Word
    #38892179
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да предварительно делаю

Код: vbnet
1.
 DocWord.Tables(1).Rows.Add



и пытаюсь объединить данные в колонке "Задолженность, руб"
№ 10. если предыдущее значение совпадает с текущим.
...
Рейтинг: 0 / 0
Объединение ячеек в Word
    #38892217
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey13если RsKvitK("Shc_new") =1,9, как вывести в Word 1,90 т.е. отформатировать.Функция Format$()
...
Рейтинг: 0 / 0
Объединение ячеек в Word
    #38892226
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey13Файл прикреплен.В файле нет кода.

Можно приложить то, что можно запустить и увидеть ошибку? а не заниматься додумыванием и дописыванием предоставленного огрызка, на это нет ни времени не желания.
...
Рейтинг: 0 / 0
Объединение ячеек в Word
    #38892237
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProВ файле нет кода.

У меня нет кода в файле, хотел сделать все из VB.

Возможно я не понимаю. Что Вы хотели видеть?
...
Рейтинг: 0 / 0
Объединение ячеек в Word
    #38892243
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProAndrey13если RsKvitK("Shc_new") =1,9, как вывести в Word 1,90 т.е. отформатировать.Функция Format$()

Спасибо.
...
Рейтинг: 0 / 0
Объединение ячеек в Word
    #38892260
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey13У меня нет кода в файле, хотел сделать все из VB.Дайте код, который мы можем запустить и увидеть ошибку. А не фрагмент кода, который сам по себе работать не будет.
...
Рейтинг: 0 / 0
Объединение ячеек в Word
    #38892263
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProAndrey13У меня нет кода в файле, хотел сделать все из VB.Дайте код, который мы можем запустить и увидеть ошибку. А не фрагмент кода, который сам по себе работать не будет.Ну и файл, соответственно, где уже есть какие-то данные тестовые, на которых эта ошибка воспроизведется. Экономьте наше время, ведь решение задачи нужно ВАМ
...
Рейтинг: 0 / 0
Объединение ячеек в Word
    #38892284
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доходит до этого места и воспроизводится ошибка в строке

Код: vbnet
1.
TableWord.Cell(i, 10).Merge MergeTo:=TableWord.Cell(i - 1, 10)





Вот кусок кода
Код: 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.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
'активируем его
 DocWord.Activate

'Заполняем реквизиты
Set TableWord = DocWord.Tables(1)

'TableWord.Cell(1, 3).Select
TableWord.Cell(1, 3).Range.Text = MainForm.NamePr

'TableWord.Cell(2, 1).Select
TableWord.Cell(2, 1).Range.Text = MainForm.Bank

'TableWord.Cell(2, 3).Select
TableWord.Cell(2, 3).Range.Text = MainForm.BIK

'TableWord.Cell(2, 5).Select
TableWord.Cell(2, 5).Range.Text = MainForm.KS

'TableWord.Cell(3, 5).Select
TableWord.Cell(3, 5).Range.Text = MainForm.RS

'TableWord.Cell(3, 3).Select
TableWord.Cell(3, 3).Range.Text = MainForm.INN

'Дата
TableWord.Cell(6, 1).Range.Text = "Расчетный период " + MainForm.Label8 + " г."

'*************************************

'MsgBox (Str(rsNum("Numer")) + "  -    " + rsNum("Oldnum"))

'лицевой счет
'TableWord.Cell(2, 7).Select
TableWord.Cell(2, 7).Range.Text = RsKvit("BanKN") + " / " + RsKvit("oldnum")
' Адрес
'TableWord.Cell(3, 7).Select
TableWord.Cell(3, 7).Range.Text = rsNum("NAIM_KLS") + " Кв №" + RsKvit("kv_num")

' ФИО
'TableWord.Cell(4, 2).Select
TableWord.Cell(4, 2).Range.Text = RsKvit("FAM") + " " + RsKvit("IM") + " " + RsKvit("OT")

'Площадь
TableWord.Cell(4, 4).Range.Text = RsKvit("COMSPACE")

'Прописано
TableWord.Cell(4, 6).Range.Text = RsKvit("NLODGERF")

'Оплата всего



OplataRS.Open ("SELECT Adding.Tip, Sum(Adding.SummaI) AS [Sum-SummaI], Adding.KodKv From Adding GROUP BY Adding.Tip, Adding.KodKv HAVING (((Adding.Tip)='-') AND ((Adding.KodKv)=" + Str(rsNum("Numer")) + "))")
If OplataRS.EOF = False Or OplataRS.BOF = False Then
TableWord.Cell(4, 8).Range.Text = OplataRS("Sum-SummaI")
Else
TableWord.Cell(4, 8).Range.Text = 0
End If
OplataRS.Close




                            'проверяем что рекордсет не пустой
                            If RsKvitK.EOF = False Or RsKvitK.BOF = False Then


i = 13
'Цикл по начислениям одного лиц счета
        RsKvitK.MoveFirst
        Do While Not RsKvitK.EOF
        
       'MsgBox (RsKvit("NameKat") + "  " + RsKvit("NameN") + " " + RsKvit("SchetZ"))
       
       
        'Объеденяем ячейки
        'DocWord.Tables(1).Rows(1).Cells(5).Select
        'DocWord.Tables(1).Range.Cells.Merge
        
                                    '****** Проставляем начисления
  If RsKvitK("Tip") = "+" Then
  
  
   'Добавляем строку в таблицу
        DocWord.Tables(1).Rows.Add
        
    'TableWord.Cell(i, 11).Select
    'TableWord.Cell(i, 1).Range.Text = RsKvitK("NameKat")
    TableWord.Cell(i, 1).Range.Text = RsKvitK("NameN")
    
    If RsKvitK("SchetZ") <> "Пер" Then
    TableWord.Cell(i, 2).Range.Text = RsKvitK("edizm")
    Else
    TableWord.Cell(i, 2).Range.Text = "X"
    End If
    
    
    ' Объем услуг
    ' Если Parametr="прописано" то ставим прописано
    
    If RsKvitK("Parametr") = "прописано" And RsKvitK("SchetZ") <> "Пер" Then
    TableWord.Cell(i, 3).Range.Text = RsKvitK("Propis")
    End If
    
    ' Если Parametr="прочие" то ставим прописано иначе *
    If RsKvitK("Parametr") = "прочие" Or RsKvitK("SchetZ") = "Пер" Then
    TableWord.Cell(i, 3).Range.Text = "X"
    End If
    
    ' Если Parametr="счетчик" или "площадь" то ставим прописано иначе площадь
    If (RsKvitK("Parametr") = "площадь" Or RsKvitK("Parametr") = "счетчик") And RsKvitK("SchetZ") <> "Пер" Then
    TableWord.Cell(i, 3).Range.Text = RsKvitK("ObPl")
    End If
    
    'Тариф
    
    'If InStr(1, RsKvitK("NameN"), "найм") = 0 Then
    TableWord.Cell(i, 4).Range.Text = Format$(RsKvitK("Tarif"), 0#)
    'End If
    
    'Теаерь плата за найм
    
    'If InStr(1, RsKvitK("NameN"), "найм") <> 0 Then
    'TableWord.Cell(i, 4).Range.Text = RsKvitK("TarifI")
    'End If
    
    
      
   'Блок для общих начислений
        
    'S для подсчета сумы долка по строке
    s = 0
        
        If RsKvitK("SchetZ") = "Общие" Then
       'TableWord.Cell(i, 5).Range.Text = RsKvitK("SaldoN")
        TableWord.Cell(i, 5).Range.Text = Format(RsKvitK("SummaI"), "#.##")
     s = s + RsKvitK("SummaI")
        End If
        
    'Блок для ОДН начислений"
     If RsKvitK("SchetZ") = "ОДН" Then
     TableWord.Cell(i, 5).Range.Text = RsKvitK("SummaI")
     s = s + RsKvitK("SummaI")
     End If
     
     'Блок для ПЕРЕРАСЧЕТА начислений"
     If RsKvitK("SchetZ") = "Пер" Then
     TableWord.Cell(i, 6).Range.Text = RsKvitK("SummaI")
     s = s + RsKvitK("SummaI")
     End If
     
     TableWord.Cell(i, 7).Range.Text = s
     
  End If
  
  
  'Нормативы потребления коммунальных услуг
  
     If RsKvitK("norm") <> 0 Then
     TableWord.Cell(i, 8).Range.Text = Str(RsKvitK("norm")) + "(" + RsKvitK("edizm") + ")"
     Else
     TableWord.Cell(i, 8).Range.Text = "Х"
     End If
  
  
  'Показания приборов учета
     If RsKvitK("Sch") = "Да" Then
     TableWord.Cell(i, 9).Range.Text = Str(RsKvitK("Shc_new") - RsKvitK("Shc_old")) + "(" + RsKvitK("edizm") + ")"
     Else
     TableWord.Cell(i, 9).Range.Text = "Х"
     End If
  
  
  'Расчеты по оплате на конец
  
  If RsKvitK("saldok") >= 0 Then
     TableWord.Cell(i, 10).Range.Text = RsKvitK("saldok")
     
     If TableWord.Cell(i, 10).Range.Text = TableWord.Cell(i - 1, 10).Range.Text Then
              
     TableWord.Cell(i, 10).Merge MergeTo:=TableWord.Cell(i - 1, 10)
          
     End If
     
  End If
  
  If RsKvitK("saldok") <= 0 Then
     TableWord.Cell(i, 11).Range.Text = (RsKvitK("saldok") * -1)
     
  End If
  
'OplataRS.Open ("SELECT Adding.Tip, Sum(Adding.SummaI) AS [Sum-SummaI], Adding.KodKv From Adding GROUP BY Adding.Tip, Adding.KodKv HAVING (((Adding.Tip)='+') AND ((Adding.KodKv)=" + Str(rsNum("Numer")) + "))")
  
  
           RsKvitK.MoveNext
        
  
  
  
  
  'Tables(1).Rows.Add
        
        
  i = i + 1
        Loop
        
        
                                   'ИТОГО
                                   
Set TableWord = DocWord.Tables(2)


'итого начислено
OplataRS.Open ("SELECT Adding.Tip, Sum(Adding.SummaI) AS [Sum-SummaI], Adding.KodKv From Adding GROUP BY Adding.Tip, Adding.KodKv HAVING (((Adding.Tip)='+') AND ((Adding.KodKv)=" + Str(rsNum("Numer")) + "))")

 If OplataRS.EOF = False Or OplataRS.BOF = False Then
 
' DocWord.Tables(2).Rows.Add
 TableWord.Cell(1, 2).Range.Text = OplataRS("Sum-SummaI")
 End If
 OplataRS.Close
 
 
 
 'Задолженность/переплата
OplataRS.Open ("SELECT Saldo.KodKV, Sum(IIf([Saldo]![SK]>0,[Saldo]![SK],0)) AS plus, Sum(IIf([Saldo]![SK]<0,[Saldo]![SK],0)) AS minus From Saldo GROUP BY Saldo.KodKV HAVING (((Saldo.KodKV)=" + Str(rsNum("Numer")) + "))")

 If OplataRS.EOF = False Or OplataRS.BOF = False Then

 TableWord.Cell(1, 5).Range.Text = OplataRS("plus")
 TableWord.Cell(1, 6).Range.Text = OplataRS("minus")
 End If
 OplataRS.Close
 
 
 
 ' итого к оплате
OplataRS.Open ("SELECT Saldo.KodKV, Sum(Saldo.SK) AS [Sum-SK] From Saldo GROUP BY Saldo.KodKV HAVING (((Saldo.KodKV)=" + Str(rsNum("Numer")) + "))")

 If OplataRS.EOF = False Or OplataRS.BOF = False Then
 

 TableWord.Cell(2, 2).Range.Text = OplataRS("Sum-SK")
 End If
 OplataRS.Close
        
        
        
             'проверяем что рекордсет не пустой
                 End If
        
        RsKvitK.Close
        RsKvit.Close
 
       
       
       
       
'Сохраняем файл

DocWord.Save
 
DocWord.Close

WordApp.Quit

'определяем видимость Word-a по True - видимый,
'по False - не видимый (работает только ядро)
'WordApp.Visible = True


rsNum.MoveNext
Loop

...
Рейтинг: 0 / 0
Объединение ячеек в Word
    #38892292
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вы издеваетесь?

как вы считаете, я могу запустить код, где есть ссылки на вашу форму, вашу базу данных?..
...
Рейтинг: 0 / 0
Объединение ячеек в Word
    #38892296
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey13Доходит до этого места и воспроизводится ошибка в строке
Код: vbnet
1.
TableWord.Cell(i, 10).Merge MergeTo:=TableWord.Cell(i - 1, 10)

i чему равно?
...
Рейтинг: 0 / 0
Объединение ячеек в Word
    #38892308
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня есть предположение, что проблема связана с горизонтальным объединением ячеек в таблице. Но, чтобы точно ответить и дать какой-то разумный совет, мне нужно продемонстрировать ошибку.

Дайте код, который я просто могу выполнить на вашем тестовом файле. Хотя бы даже строку
Код: vbnet
1.
TableWord.Cell(i, 10).Merge MergeTo:=TableWord.Cell(i - 1, 10)

, только с конкретными значениями, и чтобы она приводила к этой ошибке
...
Рейтинг: 0 / 0
Объединение ячеек в Word
    #38892366
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот.

Впервые вырезал кусок из программы поэтому долго, если что не так заранее прошу прощения.

Файл I.doc надо положить в корень.

Код: 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.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
  
Private Sub Command1_Click()
' Блок описания переменных для вывода в World
Dim Tbl As Word.Table
Dim rng As Word.Range
Dim WordApp As Word.Application ' экземпляр приложения
Dim DocWord As Word.Document ' экземпляр документа
Dim TableWord As Word.Table
'*****************************************


'Получаем данные

'Задаем имя файла отчета
nameRP = "I"
'создаём новый экземпляр Word-a
Set WordApp = New Word.Application

'определяем видимость Word-a по True - видимый,
'по False - не видимый (работает только ядро)
WordApp.Visible = False


'*************************************
'// если нужно открыть имеющийся документ, то пишем такой код

Set DocWord = WordApp.Documents.Open(App.Path + "\" + nameRP + ".doc")
'активируем его
DocWord.Activate
'сохраняем временный документ
nameRP = nameRP + "1.doc"

DocWord.SaveAs (App.Path + "\" + nameRP)
DocWord.Close

'создаём новый экземпляр Word-a
'Set WordApp = New Word.Application
' Отключаем проверку орфографии для ускорения работы
WordApp.Options.CheckSpellingAsYouType = False

'// если нужно открыть имеющийся документ, то пишем такой код
Set DocWord = WordApp.Documents.Open(App.Path + "\" + nameRP)

'активируем его
 DocWord.Activate
'Заполняем реквизиты
Set TableWord = DocWord.Tables(1)

'TableWord.Cell(1, 3).Select
TableWord.Cell(1, 3).Range.Text = "MainForm.NamePr"

'TableWord.Cell(2, 1).Select
TableWord.Cell(2, 1).Range.Text = "MainForm.Bank"

'TableWord.Cell(2, 3).Select
TableWord.Cell(2, 3).Range.Text = "MainForm.BIK"

'TableWord.Cell(2, 5).Select
TableWord.Cell(2, 5).Range.Text = "MainForm.KS"

'TableWord.Cell(3, 5).Select
TableWord.Cell(3, 5).Range.Text = "MainForm.RS"

'TableWord.Cell(3, 3).Select
TableWord.Cell(3, 3).Range.Text = "MainForm.INN"

'Дата
TableWord.Cell(6, 1).Range.Text = "Расчетный период " + "MainForm.Label8" + " г."

'*************************************

'MsgBox (Str(rsNum("Numer")) + "  -    " + rsNum("Oldnum"))

'лицевой счет
'TableWord.Cell(2, 7).Select
TableWord.Cell(2, 7).Range.Text = "RsKvit(BanKN)"
' Адрес
'TableWord.Cell(3, 7).Select
TableWord.Cell(3, 7).Range.Text = "rsNum(NAIM_KLS)"

' ФИО
'TableWord.Cell(4, 2).Select
TableWord.Cell(4, 2).Range.Text = "RsKvit(FAM)"

'Площадь
TableWord.Cell(4, 4).Range.Text = "RsKvit(COMSPACE)"

'Прописано
TableWord.Cell(4, 6).Range.Text = "RsKvit(NLODGERF)"

'Оплата всего





TableWord.Cell(4, 8).Range.Text = Format("100", "0.00")

TableWord.Cell(4, 8).Range.Text = Format(0, "0.00")






                            'проверяем что рекордсет не пустой
                            



'Цикл по начислениям одного лиц счета
       
       For i = 13 To 23
        
       
 
                    
                                    '****** Проставляем начисления
     'Добавляем строку в таблицу
        DocWord.Tables(1).Rows.Add
      TableWord.Cell(i, 1).Range.Text = "NameN"
      TableWord.Cell(i, 2).Range.Text = "edizm"
    
    ' Объем услуг
    TableWord.Cell(i, 3).Range.Text = 10
    'Тариф
    TableWord.Cell(i, 4).Range.Text = Format(10, "0.00")
    s = 0
      
   TableWord.Cell(i, 5).Range.Text = Format(10, "0.00")
   TableWord.Cell(i, 6).Range.Text = Format(10, "0.00")
   TableWord.Cell(i, 7).Range.Text = Format(10, "0.00")
  
  'Нормативы потребления коммунальных услуг
     TableWord.Cell(i, 8).Range.Text = "Х"
     
  'Показания приборов учета
     TableWord.Cell(i, 9).Range.Text = "Х"
  
  'Расчеты по оплате на конец
    s = 100
  
     TableWord.Cell(i, 10).Range.Text = Format(s, "0.00")
     
     If TableWord.Cell(i, 10).Range.Text = TableWord.Cell(i - 1, 10).Range.Text Then
              
     TableWord.Cell(i, 10).Merge MergeTo:=TableWord.Cell(i - 1, 10)
   End If
     
  
       
                                         Next i
'Сохраняем файл

DocWord.Save
 
DocWord.Close

WordApp.Quit

'определяем видимость Word-a по True - видимый,
'по False - не видимый (работает только ядро)
'WordApp.Visible = True


rsNum.MoveNext





Unload Jdite


End Sub
...
Рейтинг: 0 / 0
Объединение ячеек в Word
    #38892392
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На момент возникновения ошибки, i=13, но в таблице только 11 строк
...
Рейтинг: 0 / 0
Объединение ячеек в Word
    #38892418
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо.

Очень странно что в моем коде работало все с 13, буду разбираться.

Поставил For i=11
Работает, даже объединяет две ячейки, но потом говорит "5941" "Запрашиваемый номер семейства не существует"

Получается объединять уже сгруппированные ячейка надо как то по другому?
...
Рейтинг: 0 / 0
Объединение ячеек в Word
    #38892421
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey13,
Да и надо что бы было одно значение в сгруппированных ячейках. Здесь 100.
...
Рейтинг: 0 / 0
Объединение ячеек в Word
    #38892453
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey13Получается объединять уже сгруппированные ячейка надо как то по другому?Запишите макрос нужного действия в ворде и проанализируйте его
...
Рейтинг: 0 / 0
Объединение ячеек в Word
    #38892459
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey13Очень странно что в моем коде работало все с 13, буду разбираться.

Поставил For i=11А зачем вообще прописывать конкретную цифру в программный код???? Шаблон изменится - выпускать новую версию и раздавать всем пользователям?
Просто начинайте с Rows.Count+1
...
Рейтинг: 0 / 0
Объединение ячеек в Word
    #38892502
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProПросто начинайте с Rows.Count+1

Переписывать сложно, мне осталось всего два действия объединить ячейки и Format, боюсь потерять драгоценное время.

НО я нашел ошибку и снова благодаря Вашей подсказке, напутано было со значением I, поскольку код разветвленный иногда I=i+1 срабатывало лишний раз.

Еще раз спасибо.

Но как быть с ошибкой "5941" "Запрашиваемый номер семейства не существует"
происходит в момент
Код: vbnet
1.
TableWord.Cell(i, 10).Merge MergeTo:=TableWord.Cell(i - 1, 10)



В том случае если
Код: vbnet
1.
TableWord.Cell(i - 1, 10)

уже сгруппирована до этого.

Спасибо.

И дайте пожалуйста заветное значение Format(S,....), я не как не могу найти.))
Что только не ставил мне надо что бы при S=1 --> 1.00 при S=1.235 --> 1,23
...
Рейтинг: 0 / 0
Объединение ячеек в Word
    #38892529
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey13И дайте пожалуйста заветное значение Format(S,....), я не как не могу найти.))
Что только не ставил мне надо что бы при S=1 --> 1.00 при S=1.235 --> 1,23а справку почитать слабо? "0.00"

но при S=1.235 произойдет округление до 1,24 по правилам математики. Если нужно именно отбросить цифры (то есть 1.239 => 1.23), воспользуйтесь Fix


Andrey13уже сгруппирована до этого.вы записали макрос с нужным действием?
...
Рейтинг: 0 / 0
Объединение ячеек в Word
    #38892552
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proа справку почитать слабо? "0.00"

у меня почему то не получалось.


Shocker.Pro вы записали макрос с нужным действием?

Да. Действие проходит до того пока не наткнется на уже сгруппированную ячейку.
и

Код: vbnet
1.
TableWord.Cell(i, 10).Merge MergeTo:=TableWord.Cell(TableWord.Rows.Count - 1, 10)



и
Код: vbnet
1.
TableWord.Cell(i, 10).Merge MergeTo:=TableWord.Cell(i - 1, 10)



выдает ошибку
Код: vbnet
1.
"5941" "Запрашиваемый номер семейства не существует" 
...
Рейтинг: 0 / 0
Объединение ячеек в Word
    #38892556
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Объединение ячеек в Word
    #38892599
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запишите макрос на объединение с УЖЕ ОБЪЕДИНЕННОЙ ячейкой и посмотрите, как это будет выглядеть.
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Объединение ячеек в Word
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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