Гость
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / EXCEL Метод Find и Функция StrComp / 4 сообщений из 4, страница 1 из 1
01.09.2017, 14:57
    #39514142
Yagrus2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EXCEL Метод Find и Функция StrComp
Hello world!
Есть лист с таблицей, источником которой является OLAP-куб.
Задача: Найти заданное слово на данном листе.
Написал такую процедуру:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
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, для этого написал процедуру:
Код: vbnet
1.
2.
3.
4.
5.
6.
Sub StrComp()
    a = Range("D7").Value
    b = " Маржа, % "
     'string1 равняется string2 =>  0
    s = StrComp(a, b, 0)
End Sub


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

Возникает вопрос, что там все таки находится?
...
Рейтинг: 0 / 0
01.09.2017, 14:57
    #39514144
Yagrus2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EXCEL Метод Find и Функция StrComp
...
Рейтинг: 0 / 0
01.09.2017, 15:28
    #39514165
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EXCEL Метод Find и Функция StrComp
Ну видно же, что в переменную a попадает значение без пробелов.

А что заставляет искать строгое соответствие по полному значению? есть ещё один хедер, где в значении содержится подстрока "Маржа, %"?
...
Рейтинг: 0 / 0
05.09.2017, 17:35
    #39515925
Yagrus2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EXCEL Метод Find и Функция StrComp
Akina, Меня удивило, что Find и StrComp по-разному реагируют на одну и туже ячейку.
Просто хотелось понять это баг или фича...
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / EXCEL Метод Find и Функция StrComp / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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