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

Сумма колонки в динамической таблице

11.01.2016, 22:27. Показов 2055. Ответов 8

Студворк — интернет-сервис помощи студентам
Почему не работает?Кто может объяснить?
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub CreateTable()
    Dim A() As Long
    Dim n, m As Integer
    Dim i, j As Integer
    Dim SumA() As Integer
    Dim SumB() As Integer
          For j = 1 To m Step 2
                For i = 1 To n - 1
                SumA = SumA + A(i, j)
                SumB = SumB + A(i, j + 1)
                Next i
                Cells(n + 1, j) = SumA
                Cells(n + 1, j + 1) = SumA
Next j 'дальше, все в порядке
end sub
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.01.2016, 22:27
Ответы с готовыми решениями:

В динамической таблице удалить верхную строку при заполнении нижней
Здравствуйте! Я новичок прошу сильно не ругать (как на форуме так и в программировании). Условие: Есть динамическая ячейка из которой...

Как написать формулу нахождения значения минимума (максимума) в динамической таблице?
Как написать формулу нахождения значения минимума (максимума) в динамической таблице, где последняя строчка общий итог: Ну что то...

Добавление в сводной таблице колонки, которая равняется сумме всех колонок минус предпоследняя колонка
Помогите добавить в сводной таблице колонку, которая равняется сумме всех колонок у всех валютах минус колонка в валюте 980. ТО есть...

8
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
11.01.2016, 22:57
Четыре нуля умножить на четыре нуля!!!
Массив А кроме объявления подвергался чему-нибудь?
Назначение размера? Заполнение?
Массивы. Обьявление массивов. Сортировка массивов

Добавлено через 1 минуту
Переменные размеров, кстати, тоже не назначены

Добавлено через 2 минуты
SumA() - так объявляется массив.
И, поэтому SumA без индекса применяться уже не может
Должно быть что-то типа SumA(i) =
0
0 / 0 / 1
Регистрация: 10.01.2016
Сообщений: 31
11.01.2016, 22:59  [ТС]
Alex77755, Спасибо за ответ!
Массив А служит для заполнения и дальнейших издевательств над ним
Затем, нужно будет каждую колонку массива проссумировать

Переменные размеров все здесь:
Visual Basic
1
2
Dim n, m As Integer
Dim i, j As Integer
Я думала записать SumA как переменную, т.к. суть программы подсчитать каждый столбец и в последнй строке написать сумму
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
11.01.2016, 23:19
Переменные кроме объявления(что является не обязательным) требуют назначения
До назначения они пустые

Добавлено через 5 минут
И вопрос не корректен!
Какой именно колонки? Или всех?
От этого зависит тип SumA. Это может быть числом если колонка одна или массивом

Добавлено через 3 минуты
Начало может быть таким
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
    Dim A() As Long ' массив
    Dim n, m As Integer 'переменные размера массивов
    Dim i, j As Integer 'переменные счётчиков циклов
    Dim SumA() As Integer 'переменные сумм колонок
    
'    назначение размеров массива
    n = InputBox("n = ", "", 5) ' по умолчанию 5 строк
    m = InputBox("n = ", "", 8) ' по умолчанию 8 колонок
    
'    назначение массива
    ReDim A(n, m)
Добавлено через 1 минуту
Дальше должно быть заполнение массива.
Оно может быть автоматическое или ввод с клавы поэлементно
0
0 / 0 / 1
Регистрация: 10.01.2016
Сообщений: 31
11.01.2016, 23:40  [ТС]
я вообще убрала SumA

рассчеты такие:
проссумировать каждую колонку в А
следующим образом:
если таблица 6х6, то 1 колонка сумма до 5 строки, 2 колонка до 5 строки, потом опять 2 колонка до 4 строки и 3 колонка до 4 строки и т.д. и 2 соседние суммы разделить одну на другую естественно таблица поэтому размер не знаем.

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

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
Sub CreateTable()
    Dim A() As Long
    Dim n, m As Integer
    Dim i, j As Integer
    
    
    n = InputBox("Input row")
    m = InputBox("Input column")
    
    ReDim A(1 To n, 1 To m)
    
    If n = m Then
           For j = 1 To n
                For i = 1 To n + 1 - j
                A(i, j) = InputBox("Please, input an element a(" & i & ", " & j & ")")
                Next i
            Next j
                 
            
            For j = 1 To m 'здесь начинаем считать столбцы
                For i = 1 To n - 1
                SumA = SumA + A(i, j) 'первый столбец
                SumB = SumB + A(i, j + 1) 'второй столбец
                Next i
                Cells(i + 1, j) = SumB / SumA 'требуемый результат выводить на строчку ниже таблицы А
                
            Next j
          
        n = n + 1 'print array
        For i = 1 To n
        For j = 1 To m
        
        Cells(i, j) = A(i, j)
        
        Next j
        Next i
       
  
        End If
Миниатюры
Сумма колонки в динамической таблице  
0
0 / 0 / 1
Регистрация: 10.01.2016
Сообщений: 31
12.01.2016, 00:00  [ТС]
Алгоритм заработал!Спасибо!
все равно, почему-то не выводится сама таблица
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
n = n + 1 'print array
        For i = 1 To n
        For j = 1 To m
        
        Cells(i, j) = A(i, j)
        
        Next j
        Next i
       
  
        End If
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
12.01.2016, 01:18
Лучший ответ Сообщение было отмечено EkaterinaTsi как решение

Решение

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
Option Explicit
 
Sub CreateTable()
    Dim A() As Long
    Dim n, m As Integer
    Dim i, j As Integer
    Dim SumA, SumB
    Randomize
    n = InputBox("Input row", "", 6)
    m = InputBox("Input column", "", 6)
    
    ReDim A(1 To n, 1 To m)
    
    If n = m Then
           For j = 1 To n
                For i = 1 To n + 1 - j
                    A(i, j) = InputBox("Please, input an element a(" & i & ", " & j & ")", "", Int(600 * Rnd + 200))
                Next i
            Next j
                        
            
            For j = 1 To m - 1 'здесь начинаем считать столбцы
             SumA = 0
             SumB = 0
                For i = 1 To n
                SumA = SumA + A(i, j) 'первый столбец
                SumB = SumB + A(i, j + 1) 'второй столбец
                Next i
                If SumA <> 0 Then Cells(i + 1, j) = SumB / SumA              'требуемый результат выводить на строчку ниже таблицы А
                
            Next j
 
        For i = 1 To n
            For j = 1 To m
                Cells(i, j) = A(i, j)
            Next j
        Next i
   End If
 End Sub
1
0 / 0 / 1
Регистрация: 10.01.2016
Сообщений: 31
12.01.2016, 12:13  [ТС]
Alex77755, Спасибо огромное!Вы мне очень помогли, только я все равно немного исправила
0
12.01.2016, 14:47

Не по теме:

Рад за тебя :yes:
Я и не собирался давать полностью правильное решение.
Как и указано в подписи, я помогаю разобраться и самому ТС выполнить задание указав на возможные решения ошибок

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.01.2016, 14:47
Помогаю со студенческими работами здесь

Сумма данных в структурированной таблице
Здраствуйте. Есть задача. Имею структурированную таблицу 4-х уровней, с помощью макроса она заполняется в раскрытом виде, т.е данные...

Сумма столбцов в таблице умножения
Есть код, который выводит таблицу умножения, дали задание, чтобы под каждым столбцом посчитали его сумму, код у меня может и примитивный,...

Значения колонки в таблице, если имя колонки - переменная
Дана таблица tbTest. В таблице колонки: Field1, Field2, Field3,Field4, Field5, Хранимая процедура получает имя колонки как @cField ...

Цвета в динамической таблице
Всем привет ! помогите плииз, за денюжку, с такой проблемой: Есть динамически формируемая таблица. Стоит задача раскрасить ячейки ...

Присваивание переменной в динамической таблице
&lt;? error_reporting(E_ALL); ?&gt; &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot; &quot;http://www.w3.org/TR/html4/strict.dtd&quot;&gt; &lt;head&gt; ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru