powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / пересчет данных в таблице word по примеру.
61 сообщений из 61, показаны все 3 страниц
пересчет данных в таблице word по примеру.
    #36515198
vkopitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток! Помогите пожалуйста .

Возможно ли как-то сделать чтобы в таблице пересчитывались данные, таблицы очень большие бывают и вручную это очень долго делать, пытался найти, но ненашол. Структура таблиц одинаковая. Описные и пример в архиве.

Задача_Пример
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36515231
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно, разумеется, но не очень понятно, что вы хотите.

Если хотите, чтобы за вас это кто-то сделал - так и пишите, это очевидно будет стоить денег.

Если хотите сделать самостоятельно с нашей помощью - задавайте конкретные вопросы - что именно не получается (обход таблиц, обход ячеек, написание формулы и т.п.)
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36515483
vkopitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

обход таблиц, обход ячеек, не подскажите как сделать, нигде не нашла по таблице, и если можно побольше инфы по работе с таблицами ворда. Буду очень благадарен.
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36515502
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkopitsaнигде не нашла .... Буду очень благадарен.
Так кто же это, мужчина или женщина?


Примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Public Sub Cycle()

Dim tbl As Table, cll As Cell, i As Long
i =  0 

For Each tbl In ThisDocument.Tables
  For Each cll In tbl.Range.Cells
    i = i +  1 
  Next
Next
MsgBox CStr(i)

End Sub
Код обходит все ячейки всех таблиц и пересчитывает их
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36515829
vkopitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

гг то опечатка.

А как сделать условие, например,
______________________________
|85 | 85 | 85 | 42 | 42 | 42 | - | - | - | - |
-----------------------------------------------------

чтобы находило 6 столбцов в колонке с цифрами, как в примере в файле.


Задача_Пример
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36516269
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkopitsaчтобы находило 6 столбцов в колонке с цифрами, как в примере в файле.

не очень понял вопрос, но, допустим, так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Public Sub Cycle()

Dim tbl As Table, cll As Cell, i As Long
i =  0 

For Each tbl In ThisDocument.Tables
  For Each cll In tbl.Range.Cells
    If IsNumeric(Replace(cll.Range, Chr( 13 ) + Chr( 7 ), "")) Then i = i +  1  Else i =  0 
    If i =  6  Then
      MsgBox "Ура, нашел 6 числовых ячеек подряд"
      i =  0 
    End If
  Next
Next

End Sub
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36516774
vkopitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

А к какому ворду макрос? версия, 2002, 2003 неработает.
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36516873
vkopitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkopitsaShocker.Pro,

А к какому ворду макрос? версия, 2002, 2003 неработает.

Всё разобрался. ;)
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36517114
vkopitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Понял всё, кроме:

Chr(13) + Chr(7)
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36517125
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkopitsaПонял всё, кроме:
Chr(13) + Chr(7)

Если это не убирать, IsNumeric не распознает значение как число.
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36518962
vkopitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Как сделать чтоб выдиляло в ряд.

Код: 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.
Private Sub CommandButton7_Click()
Dim tbl As Table, cll As Cell, i As Long
i =  0 
b =  0 

For Each tbl In ActiveDocument.Tables
  For Each cll In tbl.Range.Cells
    If IsNumeric(Replace(cll.Range, Chr( 13 ) + Chr( 7 ), "")) Then i = i +  1  Else i =  0 
    If i =  6  Then
      MsgBox "Ура, нашел 6 числовых ячеек подряд"
      
 'tbl.Cell(Row, i - 6).Range.Shading.BackgroundPatternColor = RGB(255, 0, 0)
'  tbl.Cell(Row, i - 5).Range.Shading.BackgroundPatternColor = RGB(255, 0, 0)
'  tbl.Cell(Row, i - 4).Range.Shading.BackgroundPatternColor = RGB(255, 0, 0)
'   tbl.Cell(Row, i - 3).Range.Shading.BackgroundPatternColor = RGB(255, 0, 0)
'    tbl.Cell(Row, i - 2).Range.Shading.BackgroundPatternColor = RGB(255, 0, 0)
'     tbl.Cell(Row, i - 1).Range.Shading.BackgroundPatternColor = RGB(255, 0, 0)
'tbl.Cell(Row, i - 3).Range.Text = Val(tbl.Cell(Row, -6).Range.Text) / Val(2)
'tbl.Cell(Row, i - 2).Range.Text = Val(tbl.Cell(Row, -4).Range.Text) / Val(2)
'cll.Range.Text = Val(tbl.Cell(Row, -3).Range.Text) / Val(2)
'For i = 1 To n + 1

For j =  5  To  8 

tbl.Cell(row, j).Range.Shading.BackgroundPatternColor = RGB( 255 ,  0 ,  0 )
'tbl.Cell(Row, b + 6).Range.Shading.BackgroundPatternColor = RGB(255, 0, 0)
'tbl.Cell(Row, b + 7).Range.Shading.BackgroundPatternColor = RGB(255, 0, 0)
Next j
'Next i
     i =  0 
    End If
  Next
Next
End Sub

http://mydisk.se/vkopitsa/webpage/ряд.JPG
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36518972
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkopitsa,

Да. пожалуй мой код не годится для случаев с таблицами с объединенными ячейками. Надо работать не со всей таблицей, а со строками таблиц....
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36518979
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя нет... вот так должно работать

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Private Sub CommandButton7_Click()
Dim tbl As Table, cll As Cell, i As Long, BackCell As Cell, j As Long
i =  0 
b =  0 

For Each tbl In ActiveDocument.Tables
  For Each cll In tbl.Range.Cells
    If IsNumeric(Replace(cll.Range, Chr( 13 ) + Chr( 7 ), "")) Then i = i +  1  Else i =  0 
    If i =  6  Then
      'MsgBox "Ура, нашел 6 числовых ячеек подряд"
      Set BackCell = cll
      For j =  1  To  6 
        BackCell.Range.Shading.BackgroundPatternColor = RGB( 255 ,  0 ,  0 )
        If j <>  6  Then Set BackCell = BackCell.Previous
      Next
      i =  0 
    End If
  Next
Next
End Sub


но, то ли у меня чего-то с вордом.... вылетает ошибка "Code execution terminated" в произвольных местах. Попробуйте у себя.
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36519009
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, настоятельно рекомендую пользоваться Option Explicit
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36519118
vkopitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, спасибо за помощь, я тока 3 день в vba ;(

Вот что вышло, а как сделать чтобы округлило до целых? например с 15,5 на 15 ;)


Код: 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.
76.
77.
78.
79.
80.
Private Sub CommandButton10_Click()
Dim tbl As Table, cll As Cell, i As Long, BackCell As Cell, j As Long
i =  0 
b =  0 

For Each tbl In ActiveDocument.Tables
  For Each cll In tbl.Range.Cells
    If IsNumeric(Replace(cll.Range, Chr( 13 ) + Chr( 7 ), "")) Then i = i +  1  Else i =  0 
    If i =  6  Then
      'MsgBox "Ура, нашел 6 числовых ячеек подряд"
      Set BackCell = cll
      kakaCell = Val(tbl.Cell(row,  5 ).Range.Text)
      Select Case kakaCell      ' Анализирует число.
      Case  2 ,  4 ,  6 ,  8 ,  12 ,  14 ,  16 ,  18 ,  22 ,  24 ,  26 ,  28 ,  32 ,  34 ,  36 ,  38 ,  42 ,  44 ,  46 ,  48         ' Число парное.
                              chislo = Val(tbl.Cell(row,  5 ).Range.Text) + Val( 2 )
                        
                        
                        tbl.Cell(row,  5 ).Range.Text = chislo
                        tbl.Cell(row,  6 ).Range.Text = chislo
                        tbl.Cell(row,  7 ).Range.Text = chislo
                        
                        chislo2 = chislo / Val( 2 )
                        
                        tbl.Cell(row,  8 ).Range.Text = chislo2 'замена 8 ячейки
                        tbl.Cell(row,  9 ).Range.Text = chislo2 'замена 9 ячейки
                        tbl.Cell(row,  10 ).Range.Text = chislo2 'замена 10 ячейки
      
                For j =  1  To  6 
                BackCell.Range.Shading.BackgroundPatternColor = RGB( 255 ,  0 ,  0 )
                If j <>  6  Then Set BackCell = BackCell.Previous
                Next
            Case  5 ,  10 ,  15 ,  20 ,  25 ,  30 ,  35 ,  40 ,  45 ,  50 ,  55 ,  60 ,  65 ,  70 ,  75 ,  80 ,  85 ,  90 ,  95  ' Число до 95.
            
            chislo3 = Val(tbl.Cell(row,  5 ).Range.Text) + Val( 5 )
                        tbl.Cell(row,  5 ).Range.Text = chislo3
                        tbl.Cell(row,  6 ).Range.Text = chislo3
                        tbl.Cell(row,  7 ).Range.Text = chislo3
      chislo4 = chislo3 / Val( 2 )
                        tbl.Cell(row,  8 ).Range.Text = chislo4 'замена 8 ячейки
                        tbl.Cell(row,  9 ).Range.Text = chislo4 'замена 9 ячейки
                        tbl.Cell(row,  10 ).Range.Text = chislo4 'замена 10 ячейки
      
         'tbl.Cell(row, 8).Range.Text = Val(tbl.Cell(row, 5).Range.Text) / Val(2) 'замена 8 ячейки
         'tbl.Cell(row, 9).Range.Text = Val(tbl.Cell(row, 5).Range.Text) / Val(2) 'замена 9 ячейки
         'tbl.Cell(row, 10).Range.Text = Val(tbl.Cell(row, 5).Range.Text) / Val(2) 'замена 10 ячейки
         
      For j =  1  To  6 
        BackCell.Range.Shading.BackgroundPatternColor = RGB( 255 ,  0 ,  0 )
        If j <>  6  Then Set BackCell = BackCell.Previous
      Next
Case  100 ,  110 ,  120 ,  130 ,  140 ,  150 ,  160 ,  170 ,  180 ,  190 ,  210 ,  220 ,  230 ,  240 ,  250 ,  260 ,  270 ,  280 ,  290  ' Число до 290
      
          chislo5 = Val(tbl.Cell(row,  5 ).Range.Text) + Val( 10 )
                        tbl.Cell(row,  5 ).Range.Text = chislo5
                        tbl.Cell(row,  6 ).Range.Text = chislo5
                        tbl.Cell(row,  7 ).Range.Text = chislo5
      chislo6 = chislo5 / Val( 2 )
                        tbl.Cell(row,  8 ).Range.Text = chislo6 'замена 8 ячейки
                        tbl.Cell(row,  9 ).Range.Text = chislo6 'замена 9 ячейки
                        tbl.Cell(row,  10 ).Range.Text = chislo6 'замена 10 ячейки
                          
                          For j =  1  To  6 
        BackCell.Range.Shading.BackgroundPatternColor = RGB( 255 ,  0 ,  0 )
        If j <>  6  Then Set BackCell = BackCell.Previous
      Next


      Case Else       ' Другие значения нечо не выполнять.
    
End Select
      
         i =  0 
         End If
    
    
  
  Next
Next
   
      
End Sub
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36519130
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkopitsaа как сделать чтобы округлило до целых? например с 15,5 на 15 ;)

Округление - Round
Отброс дробной части - Fix
определитесь, что вам подходит.

В суть работы программы вникать не стал, так как вы не вняли моему совету отформатировать программу, чтобы она читалась.
Но дам еще один совет:
Case 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95
конечно работать будет, а если у вас диапазон будет больше раз эдак в тысячу - тоже будете все числа перечислять?

Вот выражение, которое проверяет на соответствие одному из этих чисел
Код: plaintext
i>= 5  And i<= 95  And (i Mod  5 )= 0 
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36519143
vkopitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

авторВ суть работы программы вникать не стал, так как вы не вняли моему совету отформатировать программу, чтобы она читалась.

А как ето сделать? я не знаю просто как. Может статьи есть какие-то.
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36519164
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkopitsa А как ето сделать? я не знаю просто как. Может статьи есть какие-то.


Ой. я виноват, спутал с другим топиком , простите. :)

Смысл в том, чтобы If и соответствующий ему End If были на одном уровне отступа. То же для For и Next, для Select и End Select и т.п. Все команды одного уровня должны быть с одинаковым отступом. Все команды между If и End if (For/Next и т.п.) должны быть чуть глубже.

Посмотрите по ссылке, как я переформатировал пример.

Просто без форматирования очень тяжело уловить логику чужой программы. Вы-то может в ней и ориентируетесь, но когда напишете тыщи две-три строк - тоже перестанете
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36519196
vkopitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Вот. А как выражение i>=5 And i<=95 And (i Mod 5)=0 вставить.

ставил Case i>=5 And i<=95 And (i Mod 5)=0 . Неработает.

Код: 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.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
Private Sub CommandButton10_Click()
Dim tbl As Table, cll As Cell, i As Long, BackCell As Cell, j As Long
i =  0 
b =  0 

For Each tbl In ActiveDocument.Tables
  For Each cll In tbl.Range.Cells
    If IsNumeric(Replace(cll.Range, Chr( 13 ) + Chr( 7 ), "")) Then i = i +  1  Else i =  0 
    If i =  6  Then
      'MsgBox "Ура, нашел 6 числовых ячеек подряд"
      Set BackCell = cll
      kakaCell = Val(tbl.Cell(row,  5 ).Range.Text)
        Select Case kakaCell      ' Анализирует число.
            Case  2 ,  4 ,  6 ,  8 ,  12 ,  14 ,  16 ,  18 ,  22 ,  24 ,  26 ,  28 ,  32 ,  34 ,  36 ,  38 ,  42 ,  44 ,  46 ,  48         ' Число парное.
            
                        chislo = Val(tbl.Cell(row,  5 ).Range.Text) + Val( 2 )
                        
                        tbl.Cell(row,  5 ).Range.Text = chislo
                        tbl.Cell(row,  6 ).Range.Text = chislo
                        tbl.Cell(row,  7 ).Range.Text = chislo
                        
                        chislo2 = chislo / Val( 2 )
                        chislo22 = Fix(chislo2)
                        
                        tbl.Cell(row,  8 ).Range.Text = chislo22 'замена 8 ячейки
                        tbl.Cell(row,  9 ).Range.Text = chislo22 'замена 9 ячейки
                        tbl.Cell(row,  10 ).Range.Text = chislo22 'замена 10 ячейки
      
                            For j =  1  To  6 
                            BackCell.Range.Shading.BackgroundPatternColor = RGB( 255 ,  0 ,  0 )
                            If j <>  6  Then Set BackCell = BackCell.Previous
                            Next
                            
            Case  5 ,  10 ,  15 ,  20 ,  25 ,  30 ,  35 ,  40 ,  45 ,  50 ,  55 ,  60 ,  65 ,  70 ,  75 ,  80 ,  85 ,  90 ,  95  ' Число до 100 парное.
            
                        chislo3 = Val(tbl.Cell(row,  5 ).Range.Text) + Val( 5 )
            
                        tbl.Cell(row,  5 ).Range.Text = chislo3
                        tbl.Cell(row,  6 ).Range.Text = chislo3
                        tbl.Cell(row,  7 ).Range.Text = chislo3
                        
                        chislo4 = chislo3 / Val( 2 )
                        chislo44 = Fix(chislo4)
                        
                        tbl.Cell(row,  8 ).Range.Text = chislo44 'замена 8 ячейки
                        tbl.Cell(row,  9 ).Range.Text = chislo44 'замена 9 ячейки
                        tbl.Cell(row,  10 ).Range.Text = chislo44 'замена 10 ячейки
      
         'tbl.Cell(row, 8).Range.Text = Val(tbl.Cell(row, 5).Range.Text) / Val(2) 'замена 8 ячейки
         'tbl.Cell(row, 9).Range.Text = Val(tbl.Cell(row, 5).Range.Text) / Val(2) 'замена 9 ячейки
         'tbl.Cell(row, 10).Range.Text = Val(tbl.Cell(row, 5).Range.Text) / Val(2) 'замена 10 ячейки
         
                            For j =  1  To  6 
                              BackCell.Range.Shading.BackgroundPatternColor = RGB( 255 ,  0 ,  0 )
                              If j <>  6  Then Set BackCell = BackCell.Previous
                            Next
            Case  100 ,  110 ,  120 ,  130 ,  140 ,  150 ,  160 ,  170 ,  180 ,  190 ,  210 ,  220 ,  230 ,  240 ,  250 ,  260 ,  270 ,  280 ,  290  ' Число до 300 парное.
      
                        chislo5 = Val(tbl.Cell(row,  5 ).Range.Text) + Val( 10 )
          
                        tbl.Cell(row,  5 ).Range.Text = chislo5
                        tbl.Cell(row,  6 ).Range.Text = chislo5
                        tbl.Cell(row,  7 ).Range.Text = chislo5
                        
                        chislo6 = chislo5 / Val( 2 )
      
                        tbl.Cell(row,  8 ).Range.Text = chislo6 'замена 8 ячейки
                        tbl.Cell(row,  9 ).Range.Text = chislo6 'замена 9 ячейки
                        tbl.Cell(row,  10 ).Range.Text = chislo6 'замена 10 ячейки
                          
                            For j =  1  To  6 
                                BackCell.Range.Shading.BackgroundPatternColor = RGB( 255 ,  0 ,  0 )
                                If j <>  6  Then Set BackCell = BackCell.Previous
                            Next


            Case Else       ' Другие значения нечо не выполнять.
    
        End Select
      
         i =  0 
    End If
  Next
Next
     
End Sub
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36519217
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По форматированию - вот так гораздо яснее.
в качестве буквоедства:
строки
kakaCell = Val(tbl.Cell(row, 5).Range.Text)
и
Select Case kakaCell
должны быть на одном уровне, так как Select не вложен в "kakaCell =..." (не подчиняется ему), обе команды выполняются последовательно на одном уровне. То же касается циклов "For j = 1 To 6" - кстати, зачем они, вроде их результат нигде не используется?

vkopitsaВот. А как выражение i>=5 And i<=95 And (i Mod 5)=0 вставить.
ставил Case i>=5 And i<=95 And (i Mod 5)=0 . Неработает.

Код: plaintext
If i>= 5  And i<= 95  And (i Mod  5 )= 0  Then


Программу проанализировать не смог, пока неясно, откуда вы берете row

Еще вопрос, для чего нужно Val(2) (почему не просто 2)?
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36519263
vkopitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

вот отсюда выдрал row, я думал row ето типа столбец де находица выделение.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Sub Таблица()
For Row =  1  To  10 
    ActiveDocument.Tables( 1 ).Cell(Row,  1 ).Select
    With Selection.Find
        .Text = "   "
        .Execute
    End With
    If Selection.Find.Found = True Then

    'Тут находится код, который не могу написать

    ActiveDocument.Tables( 1 ).Cell(Row,  2 ).Range.Text = Trim(ВырезанныйТекст)
    End If
Next Row
End Sub

А как сделать чтобы находило такой рядок,

http://mydisk.se/vkopitsa/webpage/данные.JPG


Табличка
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36519269
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkopitsaя думал

это потому, что вы-таки проигнорировали мой совет.

Напишите в начале каждого своего модуля
Код: plaintext
Option Explicit
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36519275
vkopitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

ок
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36519277
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkopitsaА как сделать чтобы находило такой рядок

а вы словами опишите, чем характеризуется в вашем понимании слово "такой"
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36519289
vkopitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Рядок в котором было 3 числовых ячеек, между первой и второй 2 ячейки не числовых, и между второй и третей.

А что мене теперь с row тим делать? задать row = 1 или 0.
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36519314
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkopitsaА что мене теперь с row тим делать? задать row = 1 или 0.

А вот этого я не знаю, это ваш код, не мой.
Я просто указал вам на ошибку.
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36519346
vkopitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Подскажите пожалуйста, как найти такие ячейки, я по вашему примеру попробую остальные сделать

http://mydisk.se/vkopitsa/webpage/данные.JPG

Рядок в котором было 3 числовых ячеек, между первой и второй 2 ячейки не числовых, и между второй и третей.

Или 3 числовых ячеек, а между ними 2 ячейки нечисловые.


Плиз...
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36519351
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Public Sub Cycle()

Dim tbl As Table, cll As Cell, i As Long, Text As String
i =  0 

For Each tbl In ThisDocument.Tables
  For Each cll In tbl.Range.Cells
    Text = Replace(cll.Range, Chr( 13 ) + Chr( 7 ), "")
    If ((i Mod  3 ) =  0  And IsNumeric(Text)) Or ((i Mod  3 ) <>  0  And Not IsNumeric(Text)) Then
      i = i +  1 
    Else
      i =  0 
    End If
    If i =  7  Then
      MsgBox "Ура, нашел нужный паттерн"
      cll.Select
      Exit Sub
      i =  0 
    End If
  Next
Next

End Sub
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36519408
vkopitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Спасибо большое.
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36519429
vkopitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Не работает, наверно из за номинации.
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36519502
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkopitsaShocker.Pro,

Не работает, наверно из за номинации.

В чем выражается "не работает" и что такое "номинация"?
У меня на тестовых данных сработало
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36519531
vkopitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

ой номинация ето номирация,

ненаходит.

Вот табличка на ней неработает.
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36519623
vkopitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Помогите пожалуйста, не работает.
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36519909
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkopitsa ненаходит.

Вот табличка на ней неработает.

У меня на ней работает (находит красную полоску). Проследите пошагово, не знаю, почему не работает у вас.
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36521962
vkopitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

А как сделать условие:

Если 2 выполнять, а если 12 нет.
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36521964
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 и 12 чего?
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36521979
vkopitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

числа

Если в строке 1 число выполнять, а если в строке 12 невыполнять.
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36521980
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkopitsaShocker.Pro,

числа

Если в строке 1 число выполнять, а если в строке 12 невыполнять.

1 и 12 - это номера строк? Или числа, которые должны быть... где???
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36521999
vkopitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Если в строке есть 1-но любое число, то выполнять, а если в строке 12 любых чисел то невыполнять.

Выполнять если количество цыфр в строке менще 12, а если 12 цыфр и больше не выполнять.
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36522013
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkopitsaЕсли в строке есть 1-но любое число, то выполнять, а если в строке 12 любых чисел то невыполнять.
А если 4 - самоликвидироваться? И как это условие связано со следующей строкой?

vkopitsaВыполнять если количество цыфр в строке менще 12, а если 12 цыфр и больше не выполнять.
Если под цЫфрой имеется ввиду число и речь по-прежнему идет про строку именно таблицы , тогда как-то так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Dim i As Integer, CRow As Cell
i =  0 
For Each CRow In cll.Row
  If IsNumeric(Replace(CRow.Range, Chr( 13 ) + Chr( 7 ), "")) Then i = i +  1 
Next
If i >=  12  Then
  'выполнять
End If
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36522014
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
If i <  12  Then
  'выполнять
End If
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36522032
vkopitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Спасибо
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36528436
vkopitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Как сделать чтобы шапку таблицу не считало и ячейки которые вставило, выделяло красным цветом....

Вот тут пример и макрос.

--> тут <--
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36528522
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkopitsaShocker.Pro,

Как сделать чтобы шапку таблицу не считало

А формально что такое по вашему "шапка таблицы"?

vkopitsaи ячейки которые вставило, выделяло красным цветом....

А где ячейки "которые вставило"? Точнее, какой командой делается "вставило"?
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36528947
vkopitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProА формально что такое по вашему "шапка таблицы"?

Первые 3-и строки в таблице, и в строках в которых нумерация от 1 до 13. В которых заливка серым цветом.


Shocker.ProА где ячейки "которые вставило"? Точнее, какой командой делается "вставило"?

Код: plaintext
1.
2.
3.
                        tbl.Cell(Row,  9 ).Range.Text = TextBox2.Text & Chr( 176 ) & "C (" & TextBox1.Text & ")"
                        tbl.Cell(Row,  10 ).Range.Text = Format(chislo3, "###0.00") ' Fixed
                        tbl.Cell(Row,  8 ).Range.Text = Format(chislo, "###0.00") & " (" & Format(chislo2, "###0.00") & ")"
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36529043
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkopitsaПервые 3-и строки в таблице, и в строках в которых нумерация от 1 до 13. В которых заливка серым цветом.

Как эти три признака надо записывать в условие? Как "И" или как "ИЛИ"? Или достаточно проверки одного из них? Какого?


vkopitsaShocker.ProА где ячейки "которые вставило"? Точнее, какой командой делается "вставило"?

Код: plaintext
1.
2.
3.
                        tbl.Cell(Row,  9 ).Range.Text = TextBox2.Text & Chr( 176 ) & "C (" & TextBox1.Text & ")"
                        tbl.Cell(Row,  10 ).Range.Text = Format(chislo3, "###0.00") ' Fixed
                        tbl.Cell(Row,  8 ).Range.Text = Format(chislo, "###0.00") & " (" & Format(chislo2, "###0.00") & ")"


Если я правильно понимаю, здесь идет перезапись содержимого ячеек. Про вставку ничего нет.
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36529139
vkopitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro
Как эти три признака надо записывать в условие? Как "И" или как "ИЛИ"? Или достаточно проверки одного из них? Какого?


Строки в которых нумерация от 1 до 13. Не считать, а в остальных де есть ячейки хотя бы с одним числом.считать. ;)

Shocker.Pro
Если я правильно понимаю, здесь идет перезапись содержимого ячеек. Про вставку ничего нет.


Изменить цвет ячейки которая перезаписывается.
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36529192
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkopitsaShocker.Pro
Как эти три признака надо записывать в условие? Как "И" или как "ИЛИ"? Или достаточно проверки одного из них? Какого?


Строки в которых нумерация от 1 до 13. Не считать, а в остальных де есть ячейки хотя бы с одним числом.считать. ;)

Код: plaintext
Dim i As Integer, CRow As Cell, IsHeader As Boolean\ni =  0 : IsHeader = True\nFor Each CRow In cll.Row\n  i = i +  1 \n  If i =  14  Then Exit For\n  If Val(Replace(CRow.Range, Chr( 13 ) + Chr( 7 ), "")) <> i Then IsHeader = False: Exit For\nNext\n


vkopitsaShocker.Pro
Если я правильно понимаю, здесь идет перезапись содержимого ячеек. Про вставку ничего нет.


Изменить цвет ячейки которая перезаписывается.

Ваше же сообщение
/topic/741925&pg=1#8474873
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36529254
vkopitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

вот
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36529307
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что?
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36529437
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пожалуй, следует немного по-другому, исходя из ТЗ:

Код: plaintext
1.
2.
3.
4.
5.
6.
Dim i As Integer, CRow As Cell, IsHeader As Boolean
i =  1 : IsHeader = False
For Each CRow In cll.Row
  If Val(Replace(CRow.Range, Chr( 13 ) + Chr( 7 ), "")) <> i Then Exit For
  If i =  13  Then IsHeader = True: Exit For
  i = i +  1 
Next
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36529732
vkopitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

неработает.
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36529744
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
Dim i As Integer, CRow As Cell, IsHeader As Boolean
i =  1 : IsHeader = False
For Each CRow In cll.Row.Cells
  If Val(Replace(CRow.Range, Chr( 13 ) + Chr( 7 ), "")) <> i Then Exit For
  If i =  13  Then IsHeader = True: Exit For
  i = i +  1 
Next

.Cells было забыто.

Что интересно, я копировал код отсюда , на кое сообщение вы сказали "спасибо", однако, там была та же ошибка.
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36529789
vkopitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Ошибка.

424 Object required Требуется объект
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36529795
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36529809
vkopitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

На вашем примери работает, а на таблице не ;(.

--> вот <--
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36529812
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не понимаю, какие я должен сделать выводы из приложенного скриншота.
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36530168
vkopitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Ошибка возникает при объединенных ячейках, когда ячейки одинаковые (не объединенные) ошибки нету.

Вот ошибка.
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36530175
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkopitsaShocker.Pro,

Ошибка возникает при объединенных ячейках, когда ячейки одинаковые (не объединенные) ошибки нету.

Вот ошибка.

на какой строке?
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36530231
vkopitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

For Each cll In ThisDocument.Tables(1).Columns(1).Cells
...
Рейтинг: 0 / 0
пересчет данных в таблице word по примеру.
    #36530453
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkopitsaShocker.Pro,

For Each cll In ThisDocument.Tables(1).Columns(1).Cells

А зачем вам эта строка? Это я дописал только чтобы показать, что пример работает. Вам она не понадобится при встраивании этого кода в ваш цикл.
...
Рейтинг: 0 / 0
61 сообщений из 61, показаны все 3 страниц
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / пересчет данных в таблице word по примеру.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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