|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.03.2011, 17:07 | #1 |
Пользователь
Регистрация: 12.11.2010
Сообщений: 83
|
Объявление переменной
Добрый день. Необходима помощь в решении седующей проблемы. Ниже приведен код программы,
Dim KolvoTovar As Integer Kod1 = False Do Until Kod1 KodTovar = UCase(InputBox("Введите код товара", "Код товара")) KolvoTovar = InputBox("Введите количество купленного товара", "Количество товара") If KodTovar = "" Or KolvoTovar = "" Then MsgBox "Вы не ввели код или код товара" Exit Sub End If With Worksheets("PriceData").Range("A3") KTS = Range(.Offset(1, 0), .End(xlDown)).Rows.Count For i = 1 To KTS If KodTovar = .Offset(i, 0) Then Kod1 = True Exit For ElseIf KodTovar <> .Offset(i, 0) Then Kod1 = False End If Next i If Kod1 = False Then MsgBox "Код товара не найден" End If End With Loop KT = Range("A3").Offset(i, 0) Cena = Range("B3").Offset(i, 0) Party = Range("C3").Offset(i, 0) SkidkaPr = Range("D3").Offset(i, 0) Total = Cena * KolvoTovar SkidkaTotal = Cena * KolvoTovar * (1 - SkidkaPr) If KolvoTovar >= Party Then MsgBox " Вы приобрели " & KolvoTovar & " единиц товара " & KodTovar & "" _ & ". Общая стоимость составляет " & Format(Total, "$#0.00") & ". Поскольку " _ & " приобретено больше " & Party & " единиц, то вам предоставляется скидка в " _ & " размере " & FormatPercent(SkidkaPr, 2) & " от общей стоимости. Общая стоимость с " _ & " учетом скидки составит " & Format(SkidkaTotal, "$#.00") & "." Else MsgBox " Вы приобрели " & KolvoTovar & " единиц товара " & KodTovar & "" _ & ". Поскольку приобретено меньше " & Party & " единиц, то вам скидка не предоставляется ." End If End Sub в строке: If KodTovar = "" Or KolvoTovar = "" Then MsgBox "Вы не ввели код или код товара" Exit Sub End If Проверяются введенные данные пользователем, если он не вводит ничего (либо нажимает cancel), то выдается сообщение об этом и программа завершается. Если не объявлять переменную KolvoTovar как Integer (либо Long, Doubl и т.д.), то процедура работает в данном месте нормально (то есть идет проверка на "пустую" строку), но при этом в конце программа не правильно работает в блоке: If KolvoTovar >= Party Then MsgBox " Вы приобрели " & KolvoTovar & " единиц товара " & KodTovar & "" _ & ". Общая стоимость составляет " & Format(Total, "$#0.00") & ". Поскольку " _ & " приобретено больше " & Party & " единиц, то вам предоставляется скидка в " _ & " размере " & FormatPercent(SkidkaPr, 2) & " от общей стоимости. Общая стоимость с " _ & " учетом скидки составит " & Format(SkidkaTotal, "$#.00") & "." Else MsgBox " Вы приобрели " & KolvoTovar & " единиц товара " & KodTovar & "" _ & ". Поскольку приобретено меньше " & Party & " единиц, то вам скидка не предоставляется ." End If так как воспринимает KolvoTovar как строку, которая будет всегда больше минимально необходимого числа. Если объявить переменную как Integer (либо Long, Doubl и т.д.), то выдается ошибка №13 блоке: If KodTovar = "" Or KolvoTovar = "" Then MsgBox "Вы не ввели код или код товара" Exit Sub End If Почему так происходит? И переменную объявить не могу, без нее не получается? |
27.03.2011, 17:36 | #2 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
Котлеты отдельно-мухи отдельно
Код:
Анализ,обработка данных Недорого
|
27.03.2011, 17:43 | #3 |
Пользователь
Регистрация: 12.11.2010
Сообщений: 83
|
Огромное спасибо, теперь буду "котлеты" без мух делать!
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Объявление глобальной переменной | Grom48 | Общие вопросы Delphi | 3 | 19.12.2009 22:16 |
Имя переменной как переменная. Как получить доступ к такой переменной? | Denni | Microsoft Office Access | 8 | 02.04.2009 10:06 |
объявление множества | BESS | Общие вопросы Delphi | 7 | 07.08.2008 15:24 |
Работа с файлами (создание, удаление, открытие, связываение с переменной, очищение памяти переменной) | Arkuz | Общие вопросы Delphi | 12 | 25.09.2007 20:47 |