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

Проблемы с кодом

21.05.2013, 12:48. Показов 815. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Цель: добиться того чтобы нажимая нажимая на кнопку "Выполнить расчет" выдавалась название бригады получившей наибольший доход. У меня какая то ошибка в коде в Visual Basic. Кому не сложно обратите внимание, может заинтересует) Убил уже много времени, но не могу допетрить

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
Sub Выполнить расчет()
'Обьявление переменных
End Sub
Dim urozhay(7, 3) As Integer 'Собранный урожай
Dim cena(7, 3) As Single 'закупочная цена
Dim urozhay_ob(7) As Integer
Dim dohod_brigada(7) As Single
Dim dohod_god(3) As Single
Dim dohod_objiy As Single 'Доход каждой бригады за 3 года
Dim max As Single
Dim Index As Integer
Dim i, j As Integer
'Присваивание значений
For i = 1 To 7
For j = 1 To 3
      urozhay(i, j) = Cells(i + 5, j + 1)
    MsgBox (urozhay(i, j))
  Next
      cena(i, j) = Cells(i + 5, j + 7)
    MsgBox (cena(i, j))
  Next
      urozhay_ob(i) = urozhay_ob(i) + urozhay(i, j)
    MsgBox (urozhay_ob(i) = urozhay_ob(i) + urozhay(i, j))
  Next
      dohod_kultura(i) = dohod_kultura(i) + urozhay(i, j) * cena(i, j)
    MsgBox (dohod_kultura(i) = dohod_kultura(i) + urozhay(i, j) * cena(i, j))
Next
Cells(i + 5, 8) = urozhay_ob(i)
'После выхода из внутреннего цикла выведем на экран в 8 столбец массив urozhay_ob
Cells(i + 5, 9) = dohod_kultura(i)
'В 9 столбец выведем массив dohod_kultura
Next i
For j = 1 To 3 'внешний цикл для 3 лет
For i = 1 To 7 'внутренний цикл для 7 бригад
dohod_god(j) = dohod_god(j) + urozhay(i, j) * cena(i, j)
'Просуммируем доход по всем бригадам за каждый год как произведение массива
'урожая в центнерах за каждый год по всем 7 бригадам и массива закупочных цен
'по каждой культуре по всем 3 годам
Next i
Cells(14, j + 7) = dohod_god(j)
'В 14 строку, начиная с 8 столбца, выведем данные о доходе за каждый год
dohod_objiy = dohod_objiy + dohod_god(j)
'Одновременно просуммируем общий доход за 3 года
Next j
Cells(16, 8) = dohod_objiy
'В 16 строку 8 столбца помещаем общий доход за 3 года
'Для того, чтобы найти наименование бригады, принесшей максимальный доход за 3 года
'необходимо найти максимальное значение дохода в массиве доходов по каждой бригаде 'за все 3 года
max = dohod_kultura(1)
'пусть максимумом будет первый элемент массива
For i = 1 To 7
'Количество сравнений равно количеству элементов в массиве,
'на первом шаге сравниваем текущий элемент с самим собой
If max <= dohod_kultura(i) Then
'Тогда, если максимум меньше или равен текущему элементу массива
max = dohod_kultura(i)
'максимумом становится текущий элемент массива
Index = i
'запоминаем в переменную Index номер элемента массива, в котором
'содержится максимум
End If
Next i
Cells(18, 9) = Cells(Index + 5, 1)
'В 18 строку 9 столбца выводим соответствующее (по номеру строки) название бригады,
'принесшее максимальный доход
Вложения
Тип файла: xlsx VBA.xlsx (10.7 Кб, 6 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.05.2013, 12:48
Ответы с готовыми решениями:

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

Проблемы с кодом
Зачем делать форум по вопросам с програмирования если вы не хотите на них отвичать !!!!!

Проблемы с кодом C++
Здравствуйте! Мой первый более-менее серьезный код не дает мне покоя в плане правильности. Так же...

с кодом С++ проблемы...пожалуйста...
Вот задачи, помогите чем можете)) Написать процедуру обмена столбца и строки двухмерного...

6
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,518
21.05.2013, 14:42 2
Артем32, нужно найти VBA-средствами максимальное число в столбце "I"?
0
0 / 0 / 0
Регистрация: 21.05.2013
Сообщений: 4
21.05.2013, 18:13  [ТС] 3
В столбце I сделать так чтобы показывалась название бригады которая принесла больший доход.
0
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,518
21.05.2013, 18:16 4
Артем32, макросу можно просмотреть столбец "I", чтобы найти максимальное число, или нужно какие-то другие действия сделать?
0
0 / 0 / 0
Регистрация: 21.05.2013
Сообщений: 4
21.05.2013, 20:06  [ТС] 5
Да, по максимальным значениям выбрать бригаду
0
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,518
21.05.2013, 20:17 6
Код
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
Sub Procedure_1()
 
    Dim MaxValue As Double, MaxItem As Long
    Dim i As Long
    
    'С помощью цикла двигаемся по столбцу "I" с 7 по 12 строку
        'на Excel-листе в поисках максимального числа.
    'Сначала за максимальное число принимаем первое число.
        'Затем остальные числа сравниваем с этим числом.
        'Если очередное число будет больше, то уже
        'остальные числа сравниваем с этим новым числом и т.д.
    'Запоминаем доход.
    MaxValue = Cells(6, "I").Value
    'Запоминаем номер строки, где этот доход находится.
    MaxItem = 6
    For i = 7 To 12 Step 1
        
        'Если в очередной ячейке число больше.
        If Cells(i, "I").Value > MaxValue Then
            'Запоминаем новые данные.
            MaxValue = Cells(i, "I").Value
            MaxItem = i
        End If
        
    Next i
 
    'Выводим результат в нужное место.
    Range("H18").Value = Cells(MaxItem, "A").Value
 
End Sub
1
0 / 0 / 0
Регистрация: 21.05.2013
Сообщений: 4
22.05.2013, 20:42  [ТС] 7
Скрипт! Красавец! Спасиб) Очень выручил,избавил от головной боли)
0
22.05.2013, 20:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.05.2013, 20:42
Помогаю со студенческими работами здесь

Не понимаю проблемы с кодом
Всем привет! Я совершенно не знаю языка PHP. Вот захотелось на локальном серве Open server...

Проблемы с кодом обработки матриц
помогите переделать код. в нем находится кол-во строк, не содержащих ни одного нулевого элемента. а...

Проблемы с кодом игры Шашки
Всем привет! у меня проблема, есть готовая игра шашки, все вроде правильно,но не шашки не могуть...

Проблемы с шаблонизатором и php кодом
Всем привет! работаю с шаблонизатором twig. В папке template хранятся шаблоны, также там хранятся...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru