Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите пожалуйста, выкидывает ошибку когда пишу программу на языке VBA в Excel Ошибка (Compile error: Syntax error)

Edvard Kuprijanov Знаток (284), на голосовании 8 лет назад
Sub Function1()

'стоимость пылесоса
Dim cena(3) Аs Double
'количество (по декадам)
Dim koll(3,3) As Integer
'доход за декаду
Dim doh_t(3) As Double
'количество пылесосов за месяц
Dim doh(4) As Double
'доход за декаду и за месяц
Dim koll_n(3) As Integer
'декада с наибольшим доходом.
Dim tip As Integer
'тип с наименьшим доходом
Dim dhd As Double
'счетчики циклов
Dim i As Integer, j As Integer

For i = 1 То 3
kol_n(i) = 0
Next
For j=1 То 3 doh(j) =0
Nехt

dhd = 0
tip = 0

Sheets(''Нач_д " ).Select
For i = 1 То 3
сеnа (i) = Cells(3 + i, 2)
Next
For i = 1 Тo 3
For j = 1 Тo 3
koll(i, j) = Cells(3 + i, 2 + j)
Next j
Next i

Sheets(«Результат»). Select
Sheets("Результат").Cells(1, 1) = "Количество проданной бытовой техники"
Sheets("Результат").Cells(2, 1) = "Наименование изделия"
Sheets("Результат").Cells(2, 2) = "Стоимость 1 шт. "
Sheets("Результат").Cells(2, 3) = "Проданно"
Sheets("Результат").Cells(3, 3) = "1-ая декада"
Sheets("Результат").Cells(3, 4) = "2-ая декада "
Sheets("Результат").Cells(3, 5) = "3-ая декада "
Sheets("Результат").Cells(3, 6) = "Всего"
Sheets("Результат").Cells(4, 1) = "Пылесос 1 типа "
Sheets("Результат").Cells(5, 1) = "Пылесос 2 типа "
Sheets("Результат").Cells(6, 1) = "Пылесос 3 типа "

For i = 1 То 3
Sheets("Результат").Сеlls(3 + i, 2) = cena(i)
For j = 1 То 3
Sheets("Результат").Сеlls(3 + i, 2 + j) = koll(i, j)
koll_n (i) = koll_n (i) + koll(i, j)
Next j
Sheets("Результат").Сеlls(3 + i, 6) = koll_n(i)
Next i

Sheets("Результат").Сеlls(8,1) =«Результат в денежном эквиваленте»
Sheets("Результат").Сеlls(9,1) =«Наименование изделия»
Sheets("Результат").Сеlls(9,2) =«Стоимость 1 шт.»
Sheets("Результат").Сеlls(9,3) =«Доход»
Sheets("Результат").Сеlls(10,3) = «1-ая декада»
Sheets("Результат").Сеlls(10,4) =«2-ая декада»
Sheets("Результат").Сеlls(10,5) =«3-ая декада»
Sheets("Результат").Сеlls(14,6) =«Всего»
Sheets("Результат").Сеlls(11,1) =«Пылесос 1 типа»
Sheets("Результат").Сеlls(12,1) =«Пылесос 2 типа»
Sheets("Результат").Сеlls(13,1) =«Пылесос 3 типа»
Sheets("Результат").Сеlls(14,1) =«ИТОГО»

For i = 1 То 3 For j = 1 То 3
Sheets("Результат").Сеlls(10 + i, 2 + j) = koll(i, j) * сеna(i)
doh(j) = doh(j) + koll(i, j) * сеna(i)
doh(4) = doh(4) + koll(i, j) * сеnа (i)
Next j
Sheets("Результат").Сеlls(10 + i, 2) = сеnа (i)
Sheets("Результат").Сеlls(10 + i, 6) = сеnа (i) * koll_n (i)
doh_t (i) = сеnа (i) * koll_n (i)
Next i

For j = 1 То 3
Sheets("Результат").Сеlls(11, 5 + j) = doh(j)
If –doh_t(j) < dhd Then
dhd = doh_t(j)
tip = j
End If
Next j

Sheets("Результат").Сеlls(14,6) = doh(4)
Sheets("Результат").Сеlls(15,1) = «Заработок за месяц»
Sheets("Результат").Сеlls(15,3) = doh(4)
Sheets("Результат").Сеlls(16,1) = «Пылесос с наименьшим доходом»
Sheets("Результат").Сеlls(16,4) = tip
Sheets("Результат").Сеlls(16,5) = «Доход»
Sheets("Результат").Сеlls(16,6) = dhd
End Sub
Голосование за лучший ответ
Максим Искусственный Интеллект (214992) 8 лет назад
Вы как будто указали, в какой строчке кода ошибка...
Edvard KuprijanovЗнаток (284) 8 лет назад
Максим Искусственный Интеллект (214992) Не знаю, чё это за проблема.
Edvard KuprijanovЗнаток (284) 8 лет назад
Как в таком случае найти строку с ошибкой?
Максим Искусственный Интеллект (214992) Не знаю, попробуйте исправить другие куски кода, где красный текст. Да и сделайте нормальные отступы, в циклах например.
Pandacrash Мудрец (13374) 8 лет назад
У вас многие английские буквы написаны своими близнецами из русского алфавита, например, в "Dim cena(3) as Double", "as" написано с русской буквы а. Тоже самое и с циклами - "To" написано русскими буквами.
Кавычки кое-где не такие какие должны быть, т. е. вместо «» должны быть обычные - ", которые ставятся при нажатии shift+2, на русской раскладке.
Везде, где красное - исправляйте буквы. Поэтому он вам и пишет, что ошибка в синтаксисе!
Еще вот тут: "For j=1 То 3 doh(j) =0", "doh(j) =0" обязательно должно быть на новой строке.
Edvard KuprijanovЗнаток (284) 8 лет назад
Спасибо вам большое, сейчас исправлю
Edvard KuprijanovЗнаток (284) 8 лет назад
Исправил всё что было написано красным, но вот теперь столкнулся ещё с 1 проблемой, выделяет "kol_n(i) = 3" и пишет вот такую ошибку, что это может быть?
Pandacrash Мудрец (13374) Если еще сами не разобрались, то это из-за того, что переменная объявлена с двумя "L" - "Dim koll_n(3) As Integer", а потом используете ее с одной "L" -"kol_n(i) = 0". Просто, либо допишите одну букву где используете переменную, либо удалите где объявляете ее.
Edvard KuprijanovЗнаток (284) 8 лет назад
Здраствуйте ещё раз, провёл работу над ошибками, но вот эроры всё ещё вылетают, что бы это могло значить?
Pandacrash Мудрец (13374) Обычно эта ошибка указывает на то, что вы где-то обращаетесь к несуществующему элементу массива, но в вашем случае, думаю проблема в названии листов. В вашей книге (Excel), обязательно должны быть листы с именами "Нач_д" и "Результат".
Похожие вопросы