Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.55/22: Рейтинг темы: голосов - 22, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 11.03.2010
Сообщений: 17

Пересчет данных в таблице по примеру.

11.03.2010, 19:35. Показов 4332. Ответов 34
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе время суток! Помогите пожалуйста .

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


Зарание спасибо!!!
Вложения
Тип файла: zip Задача_Пример.zip (202.2 Кб, 37 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.03.2010, 19:35
Ответы с готовыми решениями:

Пересчет записей в таблице
Здравствуйте уважаемые форумчане! Подскажите пожалуста как сделать пересчет в категориях, при такой структуре таблиц: CREATE TABLE IF...

пересчет строчек в таблице на jQuery?
Пытаюсь сделать пересчет строк, но не пойму как! Дело в том что у меня при нажатию на кнопку, создается таблица с нумерацией, но при...

Как сделать что если нет данных в таблице, чтобы шаблон этой самой таблице не выводился а писалось что данных в таблице нет
В общем проблема такая, есть админка где выводится список жалоб которые без ответа, когда они есть то всё нормально список выводится и с...

34
 Аватар для Toxa33rus
3924 / 925 / 125
Регистрация: 16.04.2009
Сообщений: 1,977
11.03.2010, 22:44
Такие вещи в Экселе делаются.
0
0 / 0 / 0
Регистрация: 11.03.2010
Сообщений: 17
11.03.2010, 23:49  [ТС]
Я знаю, но мне надо в worde, все документы в worde.
0
 Аватар для ironegg
1905 / 782 / 31
Регистрация: 11.02.2010
Сообщений: 1,567
12.03.2010, 18:06
экспортировать в Excel?

Добавлено через 2 минуты
кстати, в вордовских таблицах тоже есть формулы. для таких вычислений их должно хватить
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
13.03.2010, 17:44
vkopitsa,
т.е. у тебя сейчас есть таблица - файл "Пример". И тебе в этой таблице нужно увеличить цифры определённым способом.
Составь Табличку и вставь её сюда, в которой напиши, какое число и как надо увеличить, просто у тебя очень запутанно написано.
Думаю, что здесь обычный Поиск и замена подойдёт.
Ты русский язык не очень знаешь, я так понял, пиши тогда на английском - а то очень тяжело тебя понимать.

Добавлено через 23 минуты
Т.е. я так понимаю, что есть 2 ситуации:
  1. Есть строка, в которой заполнены подряд первые 6 ячеек.
  2. Есть строка в которой ячейки заполнены иначе, чем в 1 случае.
Если имеет место 2 случай, то мы просто прибавляем к каждому числу определённое число.
Если 1 случай, то ячейки с 4 по 6 заполняются на основе ячеек 1, 2 и 3.
В Табличке укажи, какое число и как должно увеличиваться.
0
0 / 0 / 0
Регистрация: 11.03.2010
Сообщений: 17
14.03.2010, 02:02  [ТС]
Вот табличка.
Вложения
Тип файла: zip Таблица.zip (19.8 Кб, 26 просмотров)
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
14.03.2010, 07:59
vkopitsa,
я правильно понял, что есть 2 ситуации?
Давай теперь я составлю Табличку, и ты скажешь, правильно ли я понял ситуацию.
0
0 / 0 / 0
Регистрация: 11.03.2010
Сообщений: 17
14.03.2010, 09:23  [ТС]
Давай.
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
14.03.2010, 09:53
vkopitsa,
заполни экселевский файл. Число смотри в Столбце, т.е. напротив цифры 13 напиши насколько надо его увеличивать.
Миниатюры
Пересчет данных в таблице по примеру.  
Вложения
Тип файла: xls Увеличение чисел.xls (22.0 Кб, 25 просмотров)
0
0 / 0 / 0
Регистрация: 11.03.2010
Сообщений: 17
14.03.2010, 10:46  [ТС]
Вот что вышло.
Вложения
Тип файла: xls Увеличение чисел.xls (29.0 Кб, 29 просмотров)
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
14.03.2010, 11:03
vkopitsa,
т.е. вот так надо?
Вложения
Тип файла: xls Увеличение чисел(2).xls (22.0 Кб, 23 просмотров)
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
14.03.2010, 12:03
vkopitsa,
у тебя таблицы все одинаковые или есть какие-нибудь различия, меня сейчас интересует шапка Таблицы.
0
0 / 0 / 0
Регистрация: 11.03.2010
Сообщений: 17
14.03.2010, 16:44  [ТС]
одинаковые
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
14.03.2010, 16:45
vkopitsa,
может быть чего-нибудь придумаю.
0
0 / 0 / 0
Регистрация: 11.03.2010
Сообщений: 17
14.03.2010, 19:08  [ТС]
Спасибо.
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
14.03.2010, 19:20
vkopitsa,
по поводу округления чисел.
Есть число 55, его разделили на 2 и в таблице стоит результат 27. У меня VBA округляет до 28.
0
0 / 0 / 0
Регистрация: 11.03.2010
Сообщений: 17
14.03.2010, 19:36  [ТС]
а если через Fix( )
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
14.03.2010, 20:09
vkopitsa,
Visual Basic
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
Option Base 1
Dim oCell As Cell
Dim MyArray_1(17) As String
Dim MyArray_2(19) As String
Dim MyArray_3(20) As String
Dim vData_1 As Long
Dim vData_2 As Long
Sub m_1()
On Error Resume Next
'Заполняем массивы цифрами
    MyArray_1(1) = 2
    MyArray_1(2) = 4
    MyArray_1(3) = 6
    MyArray_1(4) = 8
    MyArray_1(5) = 10
    MyArray_1(6) = 12
    MyArray_1(7) = 14
    MyArray_1(8) = 16
    MyArray_1(9) = 18
    MyArray_1(10) = 20
    MyArray_1(11) = 22
    MyArray_1(12) = 24
    MyArray_1(13) = 26
    MyArray_1(14) = 28
    MyArray_1(15) = 30
    MyArray_1(16) = 32
    MyArray_1(17) = 34
        MyArray_2(1) = 5
        MyArray_2(2) = 10
        MyArray_2(3) = 15
        MyArray_2(4) = 20
        MyArray_2(5) = 25
        MyArray_2(6) = 30
        MyArray_2(7) = 35
        MyArray_2(8) = 40
        MyArray_2(9) = 45
        MyArray_2(10) = 50
        MyArray_2(11) = 55
        MyArray_2(12) = 60
        MyArray_2(13) = 65
        MyArray_2(14) = 70
        MyArray_2(15) = 75
        MyArray_2(16) = 80
        MyArray_2(17) = 85
        MyArray_2(18) = 90
        MyArray_2(19) = 95
    MyArray_3(1) = 100
    MyArray_3(2) = 110
    MyArray_3(3) = 120
    MyArray_3(4) = 130
    MyArray_3(5) = 140
    MyArray_3(6) = 150
    MyArray_3(7) = 160
    MyArray_3(8) = 170
    MyArray_3(9) = 180
    MyArray_3(10) = 190
    MyArray_3(11) = 200
    MyArray_3(12) = 210
    MyArray_3(13) = 220
    MyArray_3(14) = 230
    MyArray_3(15) = 240
    MyArray_3(16) = 250
    MyArray_3(17) = 260
    MyArray_3(18) = 270
    MyArray_3(19) = 280
    MyArray_3(20) = 290
'Предупреждаем, что курсор нужно вставить в Таблицу
    If Selection.Cells.Count = 0 Then
        MsgBox "Вставьте курсор в Таблицу, в которой надо изменить цифры!", vbCritical + vbOKOnly, "Предупреждение"
        Exit Sub
    End If
    On Error GoTo 0
'Обрабатываем ячейки, содержащие "дефис"
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With ActiveDocument.Range.Find
        .Text = "-"
        .Replacement.Text = ""
        .Replacement.Font.Animation = wdAnimationMarchingBlackAnts
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        .Execute Replace:=wdReplaceAll
    End With
'Отделяем первую строку от Таблицы. Иначе не получится работать с конкретным столбцом, т.к. имеет место объединение ячеек.
    Selection.Tables(1).Rows(2).Select
    Selection.SplitTable
    Selection.MoveDown
'Отталкиваемся от 11 Столбца, чтобы обработать те ячейки, которые заполнены с 5 по 10 столбец
    For Each oCell In Selection.Tables(1).Columns(11).Cells
    If oCell.Shading.BackgroundPatternColor = wdColorLightYellow Then
        oCell.Select
            For x = 1 To 6
                Selection.MoveLeft Unit:=wdCell, Extend:=wdExtend
                If Selection.Text = "-" Or Selection.Characters.Count = 1 Then
                    GoTo metka
                End If
            Next
    Selection.Rows(1).Range.Font.Animation = wdAnimationMarchingRedAnts
    End If
metka:
    Next
'Заменяем цифры. В этом случае заменяются цифры, которые не идут подряд с 5 по 10 столбец.
    For Each oCell In Selection.Tables(1).Range.Cells
        oCell.Select
        If oCell.Shading.BackgroundPatternColor = wdColorLightYellow And oCell.Range.Font.Animation = wdAnimationNone _
            And Selection.Characters.Count > 1 Then
                vData_1 = Left(Selection.Text, Selection.Characters.Count - 1)
                    If InStr(Join(MyArray_1()), vData_1) > 0 Then
                        Selection.TypeText vData_1 + 2
                    ElseIf InStr(Join(MyArray_2()), vData_1) > 0 Then
                        Selection.TypeText vData_1 + 5
                    ElseIf InStr(Join(MyArray_3()), vData_1) > 0 Then
                        Selection.TypeText vData_1 + 10
                    End If
        End If
    Next
'Обрабатываем цифры, которые идут в ячейках с 5 по 10 столбец
    For Each oCell In Selection.Tables(1).Range.Cells
        oCell.Select
        If oCell.Shading.BackgroundPatternColor = wdColorLightYellow And oCell.Range.Font.Animation = wdAnimationMarchingRedAnts _
            And Selection.Characters.Count > 1 Then
                vData_1 = Left(Selection.Text, Selection.Characters.Count - 1)
                    If InStr(Join(MyArray_1()), vData_1) > 0 Then
                        vData_2 = vData_1 + 2
                        Selection.TypeText vData_2
                    ElseIf InStr(Join(MyArray_2()), vData_1) > 0 Then
                        vData_2 = vData_1 + 5
                        Selection.TypeText vData_2
                    ElseIf InStr(Join(MyArray_3()), vData_1) > 0 Then
                        vData_2 = vData_1 + 10
                        Selection.TypeText vData_2
                    End If
                    oCell.Select
                    Selection.Copy
                    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
                    Selection.Paste
                    Selection.MoveRight
                    Selection.Cells(1).Select
                    Selection.TypeText Int(vData_2 / 2)
                    Selection.Cells(1).Select
                    Selection.Copy
                    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
                    Selection.Paste
                    Selection.Rows(1).Range.Font.Animation = wdAnimationNone
        End If
    Next
'Переходим вверх над Таблицу, чтобы вернуть первую строку обратно
    Selection.Tables(1).Select
    Selection.MoveUp
    If Selection.Characters.Count = 1 Then
        Selection.Delete
    End If
'Убираем всю Анимацию из Документа. Я использовал Анимацию, чтобы выборочно работать с текстом и цифрами в Таблице.
    ActiveDocument.Range.Font.Animation = wdAnimationNone
End Sub
См. памятку пользователя.

Округление всегда будет в меньшую сторону.
Вложения
Тип файла: doc Памятка пользователя.doc (20.5 Кб, 20 просмотров)
1
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
14.03.2010, 20:23
Надо кое-что заменить.
После этого
Visual Basic
1
2
3
'Переходим вверх над Таблицу, чтобы вернуть первую строку обратно
    Selection.Tables(1).Select
    Selection.MoveUp
добавить строку:
Visual Basic
1
Selection.Paragraphs(1).Range.Select
0
0 / 0 / 0
Регистрация: 11.03.2010
Сообщений: 17
14.03.2010, 20:50  [ТС]
Работает, большоееееееееееееееееееееееееееее спасибо......
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.03.2010, 20:50
Помогаю со студенческими работами здесь

Пересчет данных на листе Excel
Извините за тупость, но можно ли сделать так, чтобы данные на листе Excel пересчитывались не на всем листе, а только в определенной строке?

Как запретить пересчет данных?
Добрый день! Не знаю даже как описать проблему...Есть БД, с которой в одной из таблиц есть поле "Цена", оно используется для...

Ввод-вывод данных. Пересчёт концентраций
Вечер в хату. Подскажите правильную стратегию: Работаю с керамикой. Имеется анализ материала в массовых количествах элемента (скажем:...

Пересчёт данных, исходя из повторяющихся циклов
Прошу помочь с данной ситуацией. Имеем график нескольких изделий, имеем проблемное место, которое на нескольких изделиях делается по...

Пересчет тИЦ и пересчет позиций
Скажите пожалуйста, как по времени соотносятся между собой пересчет тИЦ и пересчет позиций. Это происходит одновременно? Или сперва тИЦ,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator без VPN. Сборка проекта из Qt Creator с помощью CMake для разработки обычных C/C++ проектов без установки фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru