С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.87/23: Рейтинг темы: голосов - 23, средняя оценка - 4.87
0 / 0 / 0
Регистрация: 05.04.2013
Сообщений: 6
1

Compile error: Next without For

12.04.2013, 15:54. Показов 4439. Ответов 7
Метки нет (Все метки)

Не выводит фирму телевизора кол-во которого было отремонтировано меньше всего. (В самом низу кода ругается на Next)В чем может быть проблема? Саму программку так же прикрепил.
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
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
'Option Explicit
 
Sub tt()
    Dim cost()    '(10) As Double
 
    Dim amount()    '(10, 5) As Integer
 
    Dim pay(8) As Double
 
    Dim amount_n(10) As Integer
 
    Dim day As Integer
 
    Dim sumpay As Double
 
    Dim m As Integer, p As Integer
 
    'For m = 1 To 10
    'amount_n(m) = 0
    '
    'Next
    'For p = 1 To 8
    '
    '    pay(p) = 0
    '
    'Next
 
    sumpay = 0
    day = 0
 
    '    Sheets("Start").Select
 
    cost = [b4:b13].Value
    '    For m = 1 To 10
    '
    '        cost(m) = Cells(3 + m, 2)
    '
    '    Next
 
    amount = [c4:i13].Value
    'For m = 1 To 10
    '
    '    For p = 1 To 7
    '
    '        amount(m, p) = Cells(3 + m, 2 + p)
    '
    '    Next p
    '
    'Next m
    
    Sheets("Results").Select
 
 
 
    Cells(2, 1) = " Íàèìåíîâàíèå òåëåâèçîðà "
 
    
 
    Cells(2, 3) = " Êîë-âî îòðåìîíòèðîâàííûõ òåëåâèçàðîâ çà íåäåëþ "
 
    Cells(3, 3) = " 1-é äåíü "
 
    Cells(3, 4) = " 2-é äåíü "
 
    Cells(3, 5) = " 3-é äåíü "
 
    Cells(3, 6) = " 4-é äåíü "
 
    Cells(3, 7) = " 5-é äåíü "
 
    Cells(3, 8) = " 6-é äåíü "
 
    Cells(3, 9) = " 7-é äåíü "
 
    Cells(3, 10) = " Âñåãî "
 
    Cells(4, 1) = "ñàìñóíã"
 
    Cells(5, 1) = "ôèëèïñ"
 
    Cells(6, 1) = "ñîíè"
 
    Cells(7, 1) = "àéñåð"
 
    Cells(8, 1) = "øàðï"
 
    Cells(9, 1) = "ëäæè"
 
    Cells(10, 1) = "âèòÿçü"
 
    Cells(11, 1) = "õï"
 
    Cells(12, 1) = "çàíóñè"
 
    Cells(13, 1) = "óðàë"
 
    For m = 1 To 10
 
      
 
        For p = 1 To 7
 
            Cells(3 + m, 2 + p) = amount(m, p)
 
            amount_n(m) = amount_n(m) + amount(m, p)
 
        Next p
 
        Cells(3 + m, 10) = amount_n(m)
 
    Next m
    Cells(15, 1) = " Íàèìåíîâàíèå òåëåâèçîðà "
 
    Cells(15, 2) = " Ñòîèìîñòü ðàáîò "
 
    Cells(15, 3) = " Çàðàáîòîê ìàñòåðà çà êàæäûé äåíü "
 
    Cells(16, 3) = " 1-é äåíü "
 
    Cells(16, 4) = " 2-é äåíü "
 
    Cells(16, 5) = " 3-é äåíü "
 
    Cells(16, 6) = " 4-é äåíü "
 
    Cells(16, 7) = " 5-é äåíü "
 
    Cells(16, 8) = " 6-é äåíü "
 
    Cells(16, 9) = " 7-é äåíü "
 
    Cells(16, 10) = " Âñåãî "
 
    Cells(17, 1) = " Ñàìñóíã "
 
    Cells(18, 1) = " ôèëèïñ "
 
    Cells(19, 1) = " ñîíè "
 
    Cells(20, 1) = " àéñåð "
 
    Cells(21, 1) = " øàðï "
 
    Cells(22, 1) = " ëäæè "
 
    Cells(23, 1) = " âèòÿçü "
 
    Cells(24, 1) = " õï "
 
    Cells(25, 1) = " çàíóñè "
 
    Cells(26, 1) = " óðàë "
 
    For m = 1 To 10
 
        For p = 1 To 7
 
            Cells(16 + m, 2 + p) = amount(m, p) * cost(m, 1)
 
            pay(p) = pay(p) + amount(m, p) * cost(m, 1)
 
            pay(8) = pay(8) + amount(m, p) * cost(m, 1)
 
        Next p
 
        Cells(16 + m, 2) = cost(m, 1)
 
        Cells(16 + m, 10) = cost(m, 1) * amount_n(m)
    Next m
 
 
 
 
    For p = 1 To 7
 
        Cells(27, 2 + p) = pay(p)
 
        If pay(p) > sumpay Then
 
            sumpay = pay(p)
 
            day = p
 
        End If
 
    Next
    Cells(27, 10) = pay(8)
 
    Cells(28, 1) = " Çàðàáîòîê ìàñòåðà çà íåäåëþ "
 
    Cells(28, 5) = pay(8)
 
    Cells(29, 1) = "Äåíü ñ ìàêñèìàëüíûì çàðàáîòêîì"
 
    Cells(29, 5) = day
 
    Cells(29, 6) = " Çàðàáîòàíî "
 
    Cells(29, 8) = sumpay
    
 
 
 
Cells(30, 1) = " Ïðîèçâîäèòåëü òåëåâèçîðà, íàèìåíüøåãî êîëè÷åñòâî êîòîðîãî áûëî îòðåìîíòèðîâàíî çà íåäåëþ"
Cells(30, 9) = "Ôèðìà"
 
 
 
 
    For p = 1 To 7
 
        Cells(3, 2 + p) = pay(p)
 
        If pay(p) < sumpay Then
 
            sumpay = pay(p)
 
            day = p
            Next 
End If
Cells(30, 10) = sumpay
End Sub
Вложения
Тип файла: xls работа1H.xls (56.5 Кб, 10 просмотров)
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.04.2013, 15:54
Ответы с готовыми решениями:

Макрос выдает compile error: Sub, Function, or Property not defined (Error 35)
Написал макрос на VBA в Excel. На функции Find (см. текст ниже) макрос выдает compile error: Sub,...

Compile error
Здравствуйте! Мне нужно было скрыть колонки &quot;A:B&quot;, &quot;D:F&quot;, &quot;H:S&quot;, &quot;U:AD&quot;, &quot;AF:AN&quot;,...

Compile error: else without if
Cells(1, 1) = 1 Cells(1, 2) = 1 Cells(1, 3) = 1 Cells(1, 4) = 1 Cells(1, 5) = 1...

Ошибка Compile Error
Здравствуйте, помогите найти, что не так в процедуре: Function R(s, t) s = m1 t = m2 If...

7
2840 / 772 / 41
Регистрация: 20.05.2012
Сообщений: 2,056
12.04.2013, 16:52 2
Как минимум, вот здесь ошибка:
For p = 1 To 7

Cells(3, 2 + p) = pay(p)

If pay(p) < sumpay Then

sumpay = pay(p)

day = p
Next
End If
Надо поменять местами выделенное
0
6071 / 1315 / 195
Регистрация: 12.12.2012
Сообщений: 1,023
12.04.2013, 16:54 3
Здравствуйте, lАртёмl,
Ошибка возникает потому, что вы допустили ошибку при вложении условного оператора в цикл.

Предлагаю в начало кода (там, где объявляются переменные) добавить следующий код:

Visual Basic
1
2
3
4
    Dim firma(), repaired()
    Dim min_repaired As Integer, min_repaired_n As Integer
    firma = [a4:a13].Value
    min_repaired = 32767
А проблемный код (начиная с 210 строчки и до самого конца) заменить на:

Visual Basic
1
2
3
4
5
6
7
8
   For p = LBound(repaired) To UBound(repaired)
      If repaired(p, 1) < min_repaired Then
         min_repaired = repaired(p, 1)
         min_repaired_n = p
      End If
   Next p
   Cells(30, 10) = firma(min_repaired_n, 1)
End Sub
С уважением,
Aksima
1
0 / 0 / 0
Регистрация: 05.04.2013
Сообщений: 6
12.04.2013, 18:28  [ТС] 4
Здравствуйте, Aksima.
Спасибо за скорый ответ но теперь выдает Runtime error '9': Subscript out of range
Ругаясь на(выделяет желтым) For p = LBound(repaired) To UBound(repaired)
Сделал все как Вы сказали.

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
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
Sub tt()
    Dim cost()    '(10) As Double
 
    Dim amount()    '(10, 5) As Integer
 
    Dim pay(8) As Double
 
    Dim amount_n(10) As Integer
 
    Dim day As Integer
 
    Dim sumpay As Double
 
    Dim m As Integer, p As Integer
    
    Dim firma(), repaired()
    Dim min_repaired As Integer, min_repaired_n As Integer
    
    'firma = [a4:a13].Value
    'min_repaired = 32767
 
    'For m = 1 To 10
    'amount_n(m) = 0
    '
    'Next
    'For p = 1 To 8
    '
    '    pay(p) = 0
    '
    'Next
 
    sumpay = 0
    day = 0
 
    '    Sheets("Start").Select
 
    cost = [b4:b13].Value
    '    For m = 1 To 10
    '
    '        cost(m) = Cells(3 + m, 2)
    '
    '    Next
 
    amount = [c4:i13].Value
    'For m = 1 To 10
    '
    '    For p = 1 To 7
    '
    '        amount(m, p) = Cells(3 + m, 2 + p)
    '
    '    Next p
    '
    'Next m
    
    Sheets("Results").Select
 
 
 
    Cells(2, 1) = " Íàèìåíîâàíèå òåëåâèçîðà "
 
    
 
    Cells(2, 3) = " Êîë-âî îòðåìîíòèðîâàííûõ òåëåâèçàðîâ çà íåäåëþ "
 
    Cells(3, 3) = " 1-é äåíü "
 
    Cells(3, 4) = " 2-é äåíü "
 
    Cells(3, 5) = " 3-é äåíü "
 
    Cells(3, 6) = " 4-é äåíü "
 
    Cells(3, 7) = " 5-é äåíü "
 
    Cells(3, 8) = " 6-é äåíü "
 
    Cells(3, 9) = " 7-é äåíü "
 
    Cells(3, 10) = " Âñåãî "
 
    Cells(4, 1) = "ñàìñóíã"
 
    Cells(5, 1) = "ôèëèïñ"
 
    Cells(6, 1) = "ñîíè"
 
    Cells(7, 1) = "àéñåð"
 
    Cells(8, 1) = "øàðï"
 
    Cells(9, 1) = "ëäæè"
 
    Cells(10, 1) = "âèòÿçü"
 
    Cells(11, 1) = "õï"
 
    Cells(12, 1) = "çàíóñè"
 
    Cells(13, 1) = "óðàë"
 
    For m = 1 To 10
 
      
 
        For p = 1 To 7
 
            Cells(3 + m, 2 + p) = amount(m, p)
 
            amount_n(m) = amount_n(m) + amount(m, p)
 
        Next p
 
        Cells(3 + m, 10) = amount_n(m)
 
    Next m
    Cells(15, 1) = " Íàèìåíîâàíèå òåëåâèçîðà "
 
    Cells(15, 2) = " Ñòîèìîñòü ðàáîò "
 
    Cells(15, 3) = " Çàðàáîòîê ìàñòåðà çà êàæäûé äåíü "
 
    Cells(16, 3) = " 1-é äåíü "
 
    Cells(16, 4) = " 2-é äåíü "
 
    Cells(16, 5) = " 3-é äåíü "
 
    Cells(16, 6) = " 4-é äåíü "
 
    Cells(16, 7) = " 5-é äåíü "
 
    Cells(16, 8) = " 6-é äåíü "
 
    Cells(16, 9) = " 7-é äåíü "
 
    Cells(16, 10) = " Âñåãî "
 
    Cells(17, 1) = " Ñàìñóíã "
 
    Cells(18, 1) = " ôèëèïñ "
 
    Cells(19, 1) = " ñîíè "
 
    Cells(20, 1) = " àéñåð "
 
    Cells(21, 1) = " øàðï "
 
    Cells(22, 1) = " ëäæè "
 
    Cells(23, 1) = " âèòÿçü "
 
    Cells(24, 1) = " õï "
 
    Cells(25, 1) = " çàíóñè "
 
    Cells(26, 1) = " óðàë "
 
    For m = 1 To 10
 
        For p = 1 To 7
 
            Cells(16 + m, 2 + p) = amount(m, p) * cost(m, 1)
 
            pay(p) = pay(p) + amount(m, p) * cost(m, 1)
 
            pay(8) = pay(8) + amount(m, p) * cost(m, 1)
 
        Next p
 
        Cells(16 + m, 2) = cost(m, 1)
 
        Cells(16 + m, 10) = cost(m, 1) * amount_n(m)
    Next m
 
 
 
 
    For p = 1 To 7
 
        Cells(27, 2 + p) = pay(p)
 
        If pay(p) > sumpay Then
 
            sumpay = pay(p)
 
            day = p
 
        End If
 
    Next
    Cells(27, 10) = pay(8)
 
    Cells(28, 1) = " Çàðàáîòîê ìàñòåðà çà íåäåëþ "
 
    Cells(28, 5) = pay(8)
 
    Cells(29, 1) = "Äåíü ñ ìàêñèìàëüíûì çàðàáîòêîì"
 
    Cells(29, 5) = day
 
    Cells(29, 6) = " Çàðàáîòàíî "
 
    Cells(29, 8) = sumpay
    
 
 
 
Cells(30, 1) = " производитель телевизора, наименьшего количество которого было отремонтировано за неделю"
 
 
   For p = LBound(repaired) To UBound(repaired)
      If repaired(p, 1) < min_repaired Then
         min_repaired = repaired(p, 1)
         min_repaired_n = p
      End If
   Next p
   Cells(30, 10) = firma(min_repaired_n, 1)
End Sub
0
2840 / 772 / 41
Регистрация: 20.05.2012
Сообщений: 2,056
12.04.2013, 21:39 5
Скорее всего, где-то по ходу кода размерность массива(ов) должна быть переопределена: см оператор ReDim
0
6071 / 1315 / 195
Регистрация: 12.12.2012
Сообщений: 1,023
12.04.2013, 22:30 6
lАртёмl, строки 19 и 20 необходимо раскомментировать.

Перед строкой 210 добавьте еще строку:
Visual Basic
1
repaired = Range("J4:J13")
С уважением,
Aksima
1
0 / 0 / 0
Регистрация: 05.04.2013
Сообщений: 6
13.04.2013, 00:13  [ТС] 7
Ребята, Вы лучшие Всем спасибо особенно Aksima!!!
0
2840 / 772 / 41
Регистрация: 20.05.2012
Сообщений: 2,056
13.04.2013, 00:30 8
А что помогло, как сделали, для следующих поколений?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.04.2013, 00:30

Compile error: Procedure too large
Подскажите, как можно оптимизировать данный код? В конечном файле получается более 300 подобных...

Compile error: Sub or Functon not defined
Private Sub CommandButton1_Click() Dim a, b, x, y As Double a = CDb1(TextBox1.Text) b =...

Объект My.Computer - Compile error: Variable not defined
Compile error: Variable not defined Помогите разобраться начинающему. Что где надо включить,...

Исправить Compile error: Label not defined в коде
Здравствуйте, помогите, пожалуйста, урок из книжки. Пишу код, а он мне выдает Compile error: Label...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru