Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Office Новый топик    Ответить
 EXCEL Метод Find и Функция StrComp  [new]
Yagrus2
Member

Откуда: Москва
Сообщений: 685
Hello world!
Есть лист с таблицей, источником которой является OLAP-куб.
Задача: Найти заданное слово на данном листе.
Написал такую процедуру:
Sub Find()

TableHeader = " Маржа, %"
Dim ShtSvodka As Worksheet
Set ShtSvodka = ThisWorkbook.Worksheets("Филиалы (Без Бонусов)")
Dim FindCell As Range
Set FindCell = ShtSvodka.UsedRange.Find(What:=TableHeader, LookIn:=xlValues, LookAt:=xlWhole)
Dim Column_ As Integer
    If Not FindCell Is Nothing Then
            Column_ = FindCell.Column
            Columns(Column_).Select 'Если нашли, то выделить соответствующий столбец
    Else
           MsgBox ("Не нашли")
    End If
End Sub

Значение для TableHeader - получил копированием из соответствующей ячейки и оно начинается с пробела.
После запуска получаю сообщение "Не нашли".
Как выяснилось Find находит ячейку, если TableHeader = " Маржа, % " , то есть пробел в начале и конце строки.
(последний пробел, во время вставки, сжирает MSVB for Application)
Значит в ячейке D7 лежит строка " Маржа, % "

Решил проверить, как себя ведет функция StrComp, для этого написал процедуру:
Sub StrComp()
    a = Range("D7").Value
    b = " Маржа, % "
     'string1 равняется string2 =>  0
    s = StrComp(a, b, 0)
End Sub

Результат этой процедуры: в ячейке D7 не лежит строка " Маржа, % "

Возникает вопрос, что там все таки находится?

К сообщению приложен файл. Размер - 27Kb
1 сен 17, 14:57    [20764821]     Ответить | Цитировать Сообщить модератору
 Re: EXCEL Метод Find и Функция StrComp  [new]
Yagrus2
Member

Откуда: Москва
Сообщений: 685


К сообщению приложен файл. Размер - 25Kb
1 сен 17, 14:57    [20764823]     Ответить | Цитировать Сообщить модератору
 Re: EXCEL Метод Find и Функция StrComp  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 16234
Ну видно же, что в переменную a попадает значение без пробелов.

А что заставляет искать строгое соответствие по полному значению? есть ещё один хедер, где в значении содержится подстрока "Маржа, %"?
1 сен 17, 15:28    [20764915]     Ответить | Цитировать Сообщить модератору
 Re: EXCEL Метод Find и Функция StrComp  [new]
Yagrus2
Member

Откуда: Москва
Сообщений: 685
Akina, Меня удивило, что Find и StrComp по-разному реагируют на одну и туже ячейку.
Просто хотелось понять это баг или фича...
5 сен 17, 17:35    [20773630]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Office Ответить