Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.09.2010, 17:23   #1
SkrudjMakdak
Форумчанин
 
Регистрация: 14.04.2010
Сообщений: 145
По умолчанию Условие

Помогите, пожалуйста. Вот код проги:
Цитата:
dim с, newrec as Integer
dim i as long
c = ProvData(TextBox5.Value)
...
B = Range("Входящий!B" + CStr(i)).Value
...
newrec = ProvData(B) 'ProvData(String) as Integer
...
If newrec > с Then
MsgBox "newrec=" + CStr(newrec)
MsgBox "c=" + CStr(c)
End If
А выводит сообщения: newrec=812 и c=812
То что выводит одинаковые числа это правильно, но условие выполняться НЕ должно
SkrudjMakdak вне форума Ответить с цитированием
Старый 02.09.2010, 17:36   #2
SkrudjMakdak
Форумчанин
 
Регистрация: 14.04.2010
Сообщений: 145
По умолчанию

Немного измененый код проги, но результат тот же:

Цитата:
Public Function ProvData(pdt As String) As Integer
Dim pdi, pdn, pdx As Integer
Dim pdc As String
pdn = 0
pdb = 0
For pdi = 1 To Len(pdt)
If (Mid(pdt, pdi, 1) = " ") Then
pdb = 1
End If
If pdb = 1 Then
pdc = pdc + Mid(pdt, pdi, 1)
End If
pdx = Asc(Mid(pdt, pdi, 1))
If (pdb = 0) And (pdx >= 48 And pdx <= 57) Then
pdn = 10 * pdn + CInt(Mid(pdt, pdi, 1))
End If
Next
Select Case pdc
Case " января"
ProvData = pdn + 100
Case " февраля"
ProvData = pdn + 200
Case " марта"
ProvData = pdn + 300
Case " апреля"
ProvData = pdn + 400
Case " мая"
ProvData = pdn + 500
Case " июня"
ProvData = pdn + 600
Case " июля"
ProvData = pdn + 700
Case " августа"
ProvData = pdn + 800
Case " сентября"
ProvData = pdn + 900
Case " октября"
ProvData = pdn + 1000
Case " ноября"
ProvData = pdn + 1100
Case " декабря"
ProvData = pdn + 1200
Case Else
ProvData = -1
End Select
End Function

Private Sub CommandButton2_Click()
Dim newrec, c As Integer
newrec = ProvData("12 августа")
c = ProvData("12 августа")
If newrec > с Then
MsgBox "newrec=" + CStr(newrec)
MsgBox "c=" + CStr(c)
End If
End Sub
SkrudjMakdak вне форума Ответить с цитированием
Старый 02.09.2010, 17:51   #3
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Не надо путать с и c!
Используйте Option Explicit!
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 02.09.2010, 17:56   #4
SkrudjMakdak
Форумчанин
 
Регистрация: 14.04.2010
Сообщений: 145
По умолчанию

спасибо большое
SkrudjMakdak вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
условие Maka111 Microsoft Office Excel 5 17.05.2009 18:25
условие Neymexa Общие вопросы .NET 3 19.04.2009 15:39
условие Neymexa Общие вопросы по Java, Java SE, Kotlin 2 07.02.2009 11:37
Условие(If then) Andreyka Общие вопросы Delphi 3 12.01.2009 15:30
Условие [Smarik] Паскаль, Turbo Pascal, PascalABC.NET 3 03.02.2008 08:08