|
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
|
|
Народ помогите найти ошибку в коде, почему он не работает я в этом профан просто11.11.2010, 00:47. Показов 3459. Ответов 35
Метки нет (Все метки)
0
|
|
| 11.11.2010, 00:47 | |
|
Ответы с готовыми решениями:
35
Структура (найти ошибку в этом коде) Помогите найти ошибку в этом примере - 5 мин для профи! Помогите найти ошибку в коде |
|
0 / 0 / 0
Регистрация: 13.04.2011
Сообщений: 15
|
|
| 13.04.2011, 13:20 | |
|
Народ помогите найти ошибку в коде, почему он не работает я в этом профан просто
Sub FunctionZ() 'Сначала объявляем переменные, используемые в программе. 'стоимость детали Dim cena(10) Аs Double 'изготовлено изделий за смену Dim izgotovleno(10,2) As Integer 'отпущено изделий в цеха за смену Dim otpucheno(10,2) As Integer 'остаток с предыдущего дня Dim ostatok_1d(10) As Integer 'остаток после первой смены текущего дня Dim ostatok_1s(10) As Integer 'остаток после второй смены текущего дня Dim ostatok_2s(10) As Integer 'наименование изделия наибольшего спроса Dim izdelie(20) As String ‘значение максимального элемента и его строкового индекса Dim Mx As Integer, ind As Integer ‘переменные цикла Dim i As Integer, j As Integer 'В этом фрагменте происходит считывание начальных данных с листа «Нач_Д» For i = 1 То 10 cena(i) = Cells(7+i, 3) Next For i=1 То 10 For j=1 To 2 izgotovleno(i,j) = Cells(7+i, 5+j) otpucheno(i,j) = Cells(7+i, 9+j) Nехt j Next i For i+1 To 10 ostatok_1d(i) = Cells(7+i, 4)+Cells(7+i, 5) – Cells(7+i, 9) ostatok_1s(i) = ostatok_1d(i) + Cells(7+i, 6) – Cells(7+i, 10) ostatok_2s(i) = ostatok_1s(i) + Cells(7+i, 7) – Cells(7+i,11) Next i 'На листе «Результат» создаётся табличная форма. Sheets(«Результат»).Select Sheets("Результат").Cells(1, 1) = "Таблица учёта поступления готовых изделий на склад готовой продукции " Sheets("Результат").Cells(2, 1) = "и учёта отпуска изделий по цехам " Sheets("Результат").Cells(5, 1) = "Вид" Sheets("Результат").Cells(6, 1) = "изделия" Sheets("Результат").Cells(5, 2) = "Цена" Sheets("Результат").Cells(6, 2) = "1 шт." Sheets("Результат").Cells(4, 3) = "Остаток" Sheets("Результат").Cells(5, 3) = "предыдущего" Sheets("Результат").Cells(6, 3) = "дня" Sheets("Результат").Cells(5, 4) = "Стоимость" Sheets("Результат").Cells(6, 4) = "остатка" Sheets("Результат").Cells(5, 5) = "Изготовлено" Sheets("Результат").Cells(6, 5) = "за 1-ю смену" Sheets("Результат").Cells(5, 6) = "Отпущено" Sheets("Результат").Cells(6, 6) = "за 1-ю смену" Sheets("Результат").Cells(5, 7) = "Остаток" Sheets("Результат").Cells(6, 7) = "1-й смены" Sheets("Результат").Cells(5, 8) = "Стоимость" Sheets("Результат").Cells(6, 8) = "остатка" Sheets("Результат").Cells(5, 9) = "Изготовлено" Sheets("Результат").Cells(6, 9) = "за 2-ю смену" Sheets("Результат").Cells(5, 10) = "Отпущено" Sheets("Результат").Cells(6, 10) = "за 2-ю смену" Sheets("Результат").Cells(5, 11) = "Остаток" Sheets("Результат").Cells(6, 11) = "2-й смены" Sheets("Результат").Cells(5, 12) = "Стоимость" Sheets("Результат").Cells(6, 12) = "остатка" Sheets("Результат").Cells(5, 13) = "Остаток" Sheets("Результат").Cells(6, 13) = "2-го дня" Sheets("Результат").Cells(5, 14) = "Стоимость" Sheets("Результат").Cells(6, 14) = "остатка" Sheets("Результат").Cells(19, 8) = "Максимальный спрос за две смены на изделие:" Sheets("Результат").Cells(8, 1) = "Болт" Sheets("Результат").Cells(9, 1) = "Винт" Sheets("Результат").Cells(10, 1) = "Гайка" Sheets("Результат").Cells(11, 1) = "Шайба" Sheets("Результат").Cells(12, 1) = "Шуруп" Sheets("Результат").Cells(13, 1) = "Гвоздь" Sheets("Результат").Cells(14, 1) = "Скрепка" Sheets("Результат").Cells(15, 1) = "Штифт" Sheets("Результат").Cells(16, 1) = "Кнопка" Sheets("Результат").Cells(17, 1) = "Скобка" 'Вывод информации в созданную форму на листе «Результат» For i = 1 То 10 Sheets("Результат").Сеlls(7 + i, 2) = cena(i) Sheets(“Результат”).Cells(7+i, 3) =ostatok_1d(i) Sheets(“Результат”).Cells(7+i, 4) =ostatok_1d(i)*cena(i) For j = 1 То 5 Step 4 Sheets("Результат").Сеlls(7 + i, 4 + j) = izgotovleno(i, j) Sheets("Результат").Сеlls(7 + i, 5 + j) = otpucheno(i, j) Next j Sheets("Результат").Сеlls(7 + i, 7) = ostatok_1s(i) Sheets("Результат").Сеlls(7 + i, 11) = ostatok_2s(i) Sheets("Результат").Сеlls(7 + i, 8) = ostatok_1s(i)*cena(i) Sheets("Результат").Сеlls(7 + i, 12) = ostatok_2s(i)*cena(i) Sheets("Результат").Сеlls(7 + i, 13) = Сеlls(7 + i, 11) Sheets("Результат").Сеlls(7 + i, 14) = Сеlls(7 + i, 12) Next i 'поиск максимального востребованного изделия Let Mx = otpucheno(1,1) Let ind = 1 For i = 1 То 10 For j = 1 То 2 If Mx<otpucheno(i,j) Then Mx = otpucheno(i,j) End If Next j Next i ‘ выбор наименования изделия в зависимости от строкового индекса If ind=1 Then izdelie=”Болт” If ind=2 Then izdelie=”Винт” If ind=3 Then izdelie=”Гайка” If ind=4 Then izdelie=”Шайба” If ind=5 Then izdelie=”Шуруп” If ind=6 Then izdelie=”Гвоздь” If ind=7 Then izdelie=”Скрепка” If ind=8 Then izdelie=”Штифт” If ind=9 Then izdelie=”Кнопка” If ind=10 Then izdelie=”Скобка” Sheets("Результат").Сеlls(12,19) = izdelie End Sub Это для курсовой программа.
0
|
|
|
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
|
||
| 13.04.2011, 13:26 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 13.04.2011
Сообщений: 15
|
|
| 13.04.2011, 13:30 | |
|
АА тоесть, но у меня по задачи только 10 изделий
Склад готовой продукции цеха каждую смену принимает готовые изделия (гайки, болты, шайбы и т.п., всего 10 видов изделий) и каждую смену отправляет готовые изделия другим цехам. Склад, как цех, работает в 2 смены. В конце 2-й смены подсчитываются остатки. Написать программу на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит на экран: • исходные данные в виде таблицы, где указаны наименования изделий и цена каждого вида изделия, остаток от предыдущих суток, поступления каждого вида изделия в каждую смену, отпуск каждого вида изделия в течение смены; • стоимость остатка от предыдущих суток; • остаток каждого вида изделий на начало следующего рабочего дня; • стоимость остатка в конце каждой смены; • наименование изделия, пользовавшегося в течение 2-х смен наибольшим спросом.
0
|
|
|
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
|
|
| 13.04.2011, 13:32 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 13.04.2011
Сообщений: 15
|
|
| 13.04.2011, 13:37 | |
|
я понимаю что наглею, просто я в этом профан полный, я не пойму почему при ввидение кода он меня стопарит на
Next i 'поиск максимального востребованного изделия Let Mx = otpucheno(1,1) Let ind = 1 For i = 1 То 10 For j = 1 То 2 If Mx<otpucheno(i,j) Then Mx = otpucheno(i,j) End If End if - выдаёт тут ошибку и пишет End if without block if И ещё я не знаю как тут должно быть правильно, мне об этом написал Alex77755. 'наименование изделия наибольшего спроса Dim izdelie(20) As String объявлено как массив, а присвоение производится не как массиву. Тебе же бейсик об этом говорил! If ind = 1 Then izdelie = "Болт" If ind = 2 Then izdelie = "Винт" If ind = 3 Then izdelie = "Гайка" If ind = 4 Then izdelie = "Шайба" If ind = 5 Then izdelie = "Шуруп" If ind = 6 Then izdelie = "Гвоздь" If ind = 7 Then izdelie = "Скрепка" If ind = 8 Then izdelie = "Штифт" If ind = 9 Then izdelie = "Кнопка" If ind = 10 Then izdelie = "Скобка"
0
|
|
|
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
|
|||||||||||
| 13.04.2011, 13:40 | |||||||||||
|
Shahidos,
не знаю. Я ещё не до конца ваш код посмотрел. Чтобы было правильнее, поместите вот это:
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 13.04.2011
Сообщений: 15
|
|
| 13.04.2011, 13:51 | |
|
выдаёт ошибку Ambiguous name detected: FunctionZ
0
|
|
|
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
|
||
| 13.04.2011, 13:52 [ТС] | ||
|
Shahidos,
Для начала нужно внимательно прочитать задание
Зто типовая задача. За два года я их переделал много
2
|
||
|
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
|
||
| 13.04.2011, 13:53 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 13.04.2011
Сообщений: 15
|
|
| 13.04.2011, 13:56 | |
|
У меня вот это задание
Склад готовой продукции цеха каждую смену принимает готовые изделия (гайки, болты, шайбы и т.п., всего 10 видов изделий) и каждую смену отправляет готовые изделия другим цехам. Склад, как цех, работает в 2 смены. В конце 2-й смены подсчитываются остатки. Написать программу на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит на экран: • исходные данные в виде таблицы, где указаны наименования изделий и цена каждого вида изделия, остаток от предыдущих суток, поступления каждого вида изделия в каждую смену, отпуск каждого вида изделия в течение смены; • стоимость остатка от предыдущих суток; • остаток каждого вида изделий на начало следующего рабочего дня; • стоимость остатка в конце каждой смены; • наименование изделия, пользовавшегося в течение 2-х смен наибольшим спросом. Добавлено через 2 минуты Option Base 1 считается не действительным внутри процедуры
0
|
|
|
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
|
|
| 13.04.2011, 13:57 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 13.04.2011
Сообщений: 15
|
|
| 13.04.2011, 14:01 | |
|
Public Sub FunctionZ() - выделяет жёлтым я так понел это сообщение об ошибки в программе
и стапорит на End If Next i 'поиск максимального востребованного изделия Let Mx = otpucheno(1, 1) Let ind = 1 For i = 1 To 10 For j = 1 To 2 If Mx < otpucheno(i, j) Then Mx = otpucheno(i, j) End If
0
|
|
|
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
|
|||||||
| 13.04.2011, 14:01 | |||||||
|
Здесь ошибка (она же красным выделяется в VBA).
1
|
|||||||
|
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
|
|||||||||||
| 13.04.2011, 14:04 [ТС] | |||||||||||
|
Надио так:
1
|
|||||||||||
|
0 / 0 / 0
Регистрация: 13.04.2011
Сообщений: 15
|
|
| 13.04.2011, 14:07 | |
|
Public Sub FunctionZ()
Dim cena(10) As Double 'изготовлено изделий за смену Dim izgotovleno(10, 2) As Integer 'отпущено изделий в цеха за смену Dim otpucheno(10, 2) As Integer 'остаток с предыдущего дня Dim ostatok_1d(10) As Integer 'остаток после первой смены текущего дня Dim ostatok_1s(10) As Integer 'остаток после второй смены текущего дня Dim ostatok_2s(10) As Integer 'наименование изделия наибольшего спроса Dim izdelie(20) As String 'значение максимального элемента и его строкового индекса Dim Mx As Integer, ind As Integer 'переменные цикла Dim i As Integer, j As Integer 'В этом фрагменте происходит считывание начальных данных с листа "Нач_Д" For i = 1 To 10 cena(i) = Cells(7 + i, 3) Next For i = 1 To 10 For j = 1 To 2 izgotovleno(i, j) = Cells(7 + i, 5 + j) otpucheno(i, j) = Cells(7 + i, 9 + j) Next j Next i For i = 1 To 10 ostatok_1d(i) = Cells(7 + i, 4) + Cells(7 + i, 5) - Cells(7 + i, 9) ostatok_1s(i) = ostatok_1d(i) + Cells(7 + i, 6) - Cells(7 + i, 10) ostatok_2s(i) = ostatok_1s(i) + Cells(7 + i, 7) - Cells(7 + i, 11) Next i 'На листе "Результат" создаётся табличная форма. Sheets("Результат").Select Sheets("Результат").Cells(1, 1) = "Таблица учёта поступления готовых изделий на склад готовой продукции " Sheets("Результат").Cells(2, 1) = "и учёта отпуска изделий по цехам " Sheets("Результат").Cells(5, 1) = "Вид" Sheets("Результат").Cells(6, 1) = "изделия" Sheets("Результат").Cells(5, 2) = "Цена" Sheets("Результат").Cells(6, 2) = "1 шт." Sheets("Результат").Cells(4, 3) = "Остаток" Sheets("Результат").Cells(5, 3) = "предыдущего" Sheets("Результат").Cells(6, 3) = "дня" Sheets("Результат").Cells(5, 4) = "Стоимость" Sheets("Результат").Cells(6, 4) = "остатка" Sheets("Результат").Cells(5, 5) = "Изготовлено" Sheets("Результат").Cells(6, 5) = "за 1-ю смену" Sheets("Результат").Cells(5, 6) = "Отпущено" Sheets("Результат").Cells(6, 6) = "за 1-ю смену" Sheets("Результат").Cells(5, 7) = "Остаток" Sheets("Результат").Cells(6, 7) = "1-й смены" Sheets("Результат").Cells(5, 8) = "Стоимость" Sheets("Результат").Cells(6, 8) = "остатка" Sheets("Результат").Cells(5, 9) = "Изготовлено" Sheets("Результат").Cells(6, 9) = "за 2-ю смену" Sheets("Результат").Cells(5, 10) = "Отпущено" Sheets("Результат").Cells(6, 10) = "за 2-ю смену" Sheets("Результат").Cells(5, 11) = "Остаток" Sheets("Результат").Cells(6, 11) = "2-й смены" Sheets("Результат").Cells(5, 12) = "Стоимость" Sheets("Результат").Cells(6, 12) = "остатка" Sheets("Результат").Cells(5, 13) = "Остаток" Sheets("Результат").Cells(6, 13) = "2-го дня" Sheets("Результат").Cells(5, 14) = "Стоимость" Sheets("Результат").Cells(6, 14) = "остатка" Sheets("Результат").Cells(19, 8) = "Максимальный спрос за две смены на изделие:" Sheets("Результат").Cells(8, 1) = "Болт" Sheets("Результат").Cells(9, 1) = "Винт" Sheets("Результат").Cells(10, 1) = "Гайка" Sheets("Результат").Cells(11, 1) = "Шайба" Sheets("Результат").Cells(12, 1) = "Шуруп" Sheets("Результат").Cells(13, 1) = "Гвоздь" Sheets("Результат").Cells(14, 1) = "Скрепка" Sheets("Результат").Cells(15, 1) = "Штифт" Sheets("Результат").Cells(16, 1) = "Кнопка" Sheets("Результат").Cells(17, 1) = "Скобка" 'Вывод информации в созданную форму на листе "Результат" For i = 1 To 10 Sheets("Результат").Сеlls(7 + i, 2) = cena(i) Sheets("Результат").Cells(7 + i, 3) = ostatok_1d(i) Sheets("Результат").Cells(7 + i, 4) = ostatok_1d(i) * cena(i) For j = 1 To 5 Step 4 Sheets("Результат").Сеlls(7 + i, 4 + j) = izgotovleno(i, j) Sheets("Результат").Сеlls(7 + i, 5 + j) = otpucheno(i, j) Next j Sheets("Результат").Сеlls(7 + i, 7) = ostatok_1s(i) Sheets("Результат").Сеlls(7 + i, 11) = ostatok_2s(i) Sheets("Результат").Сеlls(7 + i, 8) = ostatok_1s(i) * cena(i) Sheets("Результат").Сеlls(7 + i, 12) = ostatok_2s(i) * cena(i) Sheets("Результат").Сеlls(7 + i, 13) = Cells(7 + i, 11) Sheets("Результат").Сеlls(7 + i, 14) = Cells(7 + i, 12) Next i 'поиск максимального востребованного изделия Let Mx = otpucheno(1, 1) Let ind = 1 For i = 1 To 10 For j = 1 To 2 If Mx < otpucheno(i, j) Then Mx = otpucheno(i, j) End If ----------------------------------------------------------------------------------------------- Он меня вот тут останавливает и я не могу понять что он от меня хочет ----------------------------------------------------------------------------------------------- Next j Next i ' выбор наименования изделия в зависимости от строкового индекса If ind = 1 Then izdelie = "Болт" If ind = 2 Then izdelie = "Винт" If ind = 3 Then izdelie = "Гайка" If ind = 4 Then izdelie = "Шайба" If ind = 5 Then izdelie = "Шуруп" If ind = 6 Then izdelie = "Гвоздь" If ind = 7 Then izdelie = "Скрепка" If ind = 8 Then izdelie = "Штифт" If ind = 9 Then izdelie = "Кнопка" If ind = 10 Then izdelie = "Скобка" Sheets("Результат").Сеlls(12, 19) = izdelie End Sub Добавлено через 2 минуты в смысле?
0
|
|
|
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
|
||||||
| 13.04.2011, 14:09 [ТС] | ||||||
|
Вставь в модуль Option Explicit
Часть ошибок бейсик подскажет. И уже писал на ящик - так и не исправил: объявляешь массив...
0
|
||||||
|
0 / 0 / 0
Регистрация: 13.04.2011
Сообщений: 15
|
|
| 13.04.2011, 14:18 | |
|
а как объявить массив, так (1 To 10) ?
0
|
|
|
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
|
||||||
| 13.04.2011, 14:20 [ТС] | ||||||
Ты что почту не смотрел? Я же писал: Неправильно присваиваешь
0
|
||||||
|
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
|
|||||||
| 13.04.2011, 14:21 | |||||||
0
|
|||||||
| 13.04.2011, 14:21 | |
|
Помогаю со студенческими работами здесь
20
Помогите найти ошибку в коде Помогите найти ошибку в коде
Помогите найти ошибку в коде Помогите найти ошибку в коде. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
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, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|