Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

сравнение строк

8.8K
22 сентября 2010 года
opex
71 / / 17.01.2007
Привет!
 
Код:
Dim Str1, Str2 As String
            Str1 = UCase(Trim("ЛОЖЬ"))
            Str2 = UCase(Trim(Worksheets("1").Cells(2, 15).Value))
            ' ячейка Worksheets("1").Cells(2, 15) содержит значение "ЛОЖЬ"
            Worksheets("777").Cells(3, 8).Value = Len(Trim(Str1))
            Worksheets("777").Cells(3, 9).Value = Len(Trim(Str2))
            If (Str1 = Str2) Then Worksheets("777").Cells(2, 10).Value = "EQUAL"

В ячейке Worksheets("1").Cells(2, 15) присутствует значение "ЛОЖЬ".
На первый взгляд в обоих строках Str1 и Str2 находится одно и тоже значение "ЛОЖЬ". Но это не так, видимо в Str2 остаются какие-то форматирующие символы, которые я не могу отфильтровать:

Len(Trim(Str1)) показывает 4
Len(Trim(Str2)) показывает 5

Где-то нашел такой код для получения "чистого значения", но не помогает:
 
Код:
Str = Application.WorksheetFunction.Clean(Str)


ЧТо можете посоветовать?
8.8K
23 сентября 2010 года
opex
71 / / 17.01.2007
Ребята, программа застопорилась на этом! Нужна идея! :confused:
275
23 сентября 2010 года
pashulka
985 / / 19.09.2004
Если в ячейке наличествует логическое значение ЛОЖЬ, то вышеприведённый вариант сравнения будет работать только в XL97 (возможно и в более ранних версиях), в остальных же случаях можно использовать :

 
Код:
If Worksheets("1").Cells(2, 15).Value = False Then _
   Worksheets("777").Cells(2, 10).Value = "EQUAL"


 
Код:
If Not Worksheets("1").Cells(2, 15).Value Then _
   Worksheets("777").Cells(2, 10).Value = "EQUAL"
8.8K
23 сентября 2010 года
opex
71 / / 17.01.2007
Цитата: pashulka
Если в ячейке наличествует логическое значение ЛОЖЬ, то вышеприведённый вариант сравнения будет работать только в XL97 (возможно и в более ранних версиях), в остальных же случаях можно использовать :

 
Код:
If Worksheets("1").Cells(2, 15).Value = False Then _
   Worksheets("777").Cells(2, 10).Value = "EQUAL"


 
Код:
If Not Worksheets("1").Cells(2, 15).Value Then _
   Worksheets("777").Cells(2, 10).Value = "EQUAL"



pashulka, спасибо!
представить не мог, что значение ячейки может рассматриваться как зарезервированное слово(тем более на русском языке)! Очень признателен за помощь!
Тема закрыта

275
24 сентября 2010 года
pashulka
985 / / 19.09.2004
opex, на самом деле ячейка это только частность, просто в руссифицированном XL97 есть свои особенности, касающиеся логических значения True и False, см. скриншот и обратите также своё внимание на описание переменных в VB(A)


Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог