powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / как строку перевести в Boolean?
17 сообщений из 17, страница 1 из 1
как строку перевести в Boolean?
    #34796363
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как строку перевести в Boolean?
очень надо, помогите, пишу следующий код

Код: plaintext
1.
2.
3.
4.
5.
6.
Dim t as boolean
Dim st As String

st = "t" + Лист1.Cells( 2 ,  1 ).Value
MsgBox st

t = CVar(st)

type mismatch
на строку t = CVar(st)
как исправить?
...
Рейтинг: 0 / 0
как строку перевести в Boolean?
    #34796384
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
почему для приведения к типу boolean вы используете CVar ? Чему равно st перед преобразованием типов ?
...
Рейтинг: 0 / 0
как строку перевести в Boolean?
    #34796416
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
big-dukeпочему для приведения к типу boolean вы используете CVar ? Чему равно st перед преобразованием типов ?


Ну, впереди st явно стоит t .

Так что, получается, ругается правильно...
...
Рейтинг: 0 / 0
как строку перевести в Boolean?
    #34796419
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
к примеру

Код: plaintext
st= "t<>0"

использовала ошибочно, подскажите какую функцию использовать (посмотреть для чего в вложенном файле)
...
Рейтинг: 0 / 0
как строку перевести в Boolean?
    #34796420
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
как строку перевести в Boolean?
    #34796834
Скачал, посмотрел...
Вам же уже писали про Evaluate:
Код: plaintext
1.
check = CBool(Evaluate(st))

И не пишите
Код: plaintext
1.
If t = True And k = True And l = True Then
правильнее
Код: plaintext
1.
If t And k And l Then
...
Рейтинг: 0 / 0
как строку перевести в Boolean?
    #34796876
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ошибку не выдает, но условие не проверяет
...
Рейтинг: 0 / 0
как строку перевести в Boolean?
    #34796915
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимо проходил...Скачал, посмотрел...
Вам же уже писали про Evaluate:
Код: plaintext
1.
check = CBool(Evaluate(st))

И не пишите
Код: plaintext
1.
If t = True And k = True And l = True Then
правильнее
Код: plaintext
1.
If t And k And l Then


ОГРОМНОЕ ЧЕЛОВЕЧЕСКОЕ СПАСИБО
...
Рейтинг: 0 / 0
как строку перевести в Boolean?
    #34796918
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
разобралась, работает
...
Рейтинг: 0 / 0
как строку перевести в Boolean?
    #34797313
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не работает(((

игнорирует условие, ошибку не выдает, но условие не проверяет
...
Рейтинг: 0 / 0
как строку перевести в Boolean?
    #34797769
А что вы хотели от своего бреда? А пока почитайте комментарии.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Sub main()
    s = uslovie( 1 ,  2 ,  3 ) ' как это соотносится с "k As Boolean, l As Boolean"?
End Sub

Function uslovie(t As Integer, k As Boolean, l As Boolean)
    Dim st As String

    st = "t" + Лист1.Cells( 2 ,  1 ).Value
    'MsgBox st

    st = CVar(t & Лист1.Cells( 2 ,  1 ).Value)
    MsgBox st

    Dim check

    check = CBool(st) ' заменить на check = CBool(Evaluate(st))
    MsgBox check

    ' замените на If t And k And l Then следующую строку
    If t = True And k = True And l = True Then ' разберитесь наконец какого типа у Вас t, k и l
        MsgBox ("работает условие")
    End If
    ' а где возврат значения?
End Function
Короче, полный бред...
...
Рейтинг: 0 / 0
как строку перевести в Boolean?
    #34797987
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимо проходил...А что вы хотели от своего бреда? А пока почитайте комментарии.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Sub main()
    s = uslovie( 1 ,  2 ,  3 ) ' как это соотносится с "k As Boolean, l As Boolean"?
End Sub

Function uslovie(t As Integer, k As Boolean, l As Boolean)
    Dim st As String

    st = "t" + Лист1.Cells( 2 ,  1 ).Value
    'MsgBox st

    st = CVar(t & Лист1.Cells( 2 ,  1 ).Value)
    MsgBox st

    Dim check

    check = CBool(st) ' заменить на check = CBool(Evaluate(st))
    MsgBox check

    ' замените на If t And k And l Then следующую строку
    If t = True And k = True And l = True Then ' разберитесь наконец какого типа у Вас t, k и l
        MsgBox ("работает условие")
    End If
    ' а где возврат значения?
End Function
Короче, полный бред...


а если условие выглядит как in(5,6)
что должно выдать false а выдает true
...
Рейтинг: 0 / 0
как строку перевести в Boolean?
    #34798145
Klera
а если условие выглядит как in(5,6)
что должно выдать false а выдает true
Легко объяснимо:
Код: plaintext
1.
2.
st = "4 in(5,6)" ' или пишу любую другую чушь
check = CBool(Evaluate(st)) ' Evaluate возвращает сообщение об ошибке, а CBool преобразует его в True
А что бы проверить себя используйте:
Код: plaintext
1.
2.
3.
st = "4 in (5,6)"
check = Evaluate(st)
Debug.Print check
...
Рейтинг: 0 / 0
как строку перевести в Boolean?
    #34798173
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а
Код: plaintext
1.
2.
st = "3 in (5,6)"
check = CBool(Evaluate(st))
Debug.Print check

тоже вернет True....


I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
как строку перевести в Boolean?
    #34798190
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как это применить к моей функции???
заменила
check = CBool(Evaluate(st)) на check = Evaluate(st)
Debug.Print check

выдает ошибку

как заменить чтобы корректно работало и для условия in (5,6) ???
...
Рейтинг: 0 / 0
как строку перевести в Boolean?
    #34798244
Klera
как заменить чтобы корректно работало и для условия in (5,6) ???

Читайте внимательнее
Мимо проходил...
Код: plaintext
1.
st = "4 in(5,6)" ' или пишу любую другую чушь

Объясняю популярно: нет такой формулы (откуда Вы вообще взяли этот "IN"?), а для проверки Ваших фантазий предложил применять
Код: plaintext
1.
2.
3.
st = "3 in (5,6)"
check = Evaluate(st)
Debug.Print check
Если вернет результат, значит есть такая формула, иначе вернет сообщение об ошибке.
Короче, используйте другую формулу...
...
Рейтинг: 0 / 0
как строку перевести в Boolean?
    #34800290
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
http://www.sql.ru/forum/actualthread.aspx?tid=473091&pg=2
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / как строку перевести в Boolean?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]