powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / VBA Excel , СРАВНЕНИЕ СТРОК - ГДЕ НЕПРАВИЛЬНО Я ДЕЛАЮ
8 сообщений из 8, страница 1 из 1
VBA Excel , СРАВНЕНИЕ СТРОК - ГДЕ НЕПРАВИЛЬНО Я ДЕЛАЮ
    #32726429
Milk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: 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.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
Решаемf ли с помощью VBA Excel
проблема ПОИСКА, пока  НЕ РЕШАЕМО.
Что требуется:
в колокне ‘K’  находится название месяца,
например, “январь” …  “декабрь”
В соседней колонке справа, т.е. “L” находится названия
районов, допустим, Орехово-Зуевский, Одинцовский,
Наро-Фоминский.
Каждый месяц в лист заносится  9  строк по каждому району,
в результате фрагмент имеет вид :

сентябрь   Наро-Фоминский
сентябрь   Наро-Фоминский
сентябрь   Наро-Фоминский
сентябрь   Наро-Фоминский
сентябрь   Наро-Фоминский
сентябрь   Наро-Фоминский
сентябрь   Наро-Фоминский
сентябрь   Наро-Фоминский
сентябрь   Наро-Фоминский

октябрь   Наро-Фоминский
октябрь   Наро-Фоминский
октябрь   Наро-Фоминский
октябрь   Наро-Фоминский
октябрь   Наро-Фоминский
октябрь   Наро-Фоминский
октябрь   Наро-Фоминский
октябрь   Наро-Фоминский
октябрь   Наро-Фоминский

октябрь   Одинцовский
октябрь   Одинцовский
октябрь   Одинцовский

В коде название месяца ищется правильно, 
НО НАЗВАНИЕ РАЙОНА ИЩЕТСЯ НЕ ВСЕГДА.
Это уже второй алгоритм, более простой:

Dim row As Integer
 Dim col As Integer
    row =  2  ‘ поиск начинаю со второй строки
    col =  11  ‘  номер столба “K”
    
    Cells(row, col).Select  ' choose cell into sheet,т.е. 'K1' 
    Dim m_sMonth As String
    Dim m_sRegion As String
    Dim m_sTemp As String
    
‘ выбираю название месяца из ComboBox на диалоговом окне
 m_sMonth = ComboBox1.Value
 ‘ выбираю название района из ComboBox на диалоговом окне
 m_sRegion = ComboBox2.Value

    For i =  1  To m_iNumberLastRow   ' M1: 
	‘ поиск названия  МЕСЯЦА
       If Trim(Cells(row, col).Value) = Trim(m_sMonth) Then   ' M2: 
		‘ поиск названия РАЙОНА
        If Trim(ActiveCell.Offset( 0 ,  1 ).Value) = Trim(m_sRegion) Then   ' M3: 
            MsgBox "месяц " & m_sMonth & vbNewLine & _
            "название района " & m_sRegion & vbNewLine & _
            "найдено"
            Exit Sub
        End If   ' end M3: 
    End If   ' end M2: 
    row = row +  1  
   Next i  ' end M1:

ПОЧЕМУ НЕ РАБОТАЕТ второй if и как выйти
из ситуации ?:

Код: plaintext
1.
2.
3.
4.
5.
If Trim(ActiveCell.Offset( 0 ,  1 ).Value) = Trim(m_sRegion) Then   ' M3: 
            MsgBox "месяц " & m_sMonth & vbNewLine & _
            "название района " & m_sRegion & vbNewLine & _
            "найдено"
            Exit Sub
End If  

СПАСИБО
...
Рейтинг: 0 / 0
VBA Excel , СРАВНЕНИЕ СТРОК - ГДЕ НЕПРАВИЛЬНО Я ДЕЛАЮ
    #32726612
FYI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FYI
Гость
при сравнении строк можно попробовать
- убедиться, что сравниваются данные одного типа, т.е. именно текстовые строки через debug.print
- изменить регистр при сравнении с помощью ucase(trim(<строка>)) в обоих частях, т.е. привести к одному регистру (верхний или нижний)
- в конструкциях IF...THEN...ELSE на всякий случай использовать BEGIN...END для группировки команд, поскольку после THEN может быть или ОДНА команда или блок BEGIN...END
...
Рейтинг: 0 / 0
VBA Excel , СРАВНЕНИЕ СТРОК - ГДЕ НЕПРАВИЛЬНО Я ДЕЛАЮ
    #32726663
FYI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FYI
Гость
Код: plaintext
- в конструкциях IF...THEN...ELSE ...
sorry, это уже T-SQL пошел, а не VB :)
...
Рейтинг: 0 / 0
VBA Excel , СРАВНЕНИЕ СТРОК - ГДЕ НЕПРАВИЛЬНО Я ДЕЛАЮ
    #32729377
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
VBA Excel , СРАВНЕНИЕ СТРОК - ГДЕ НЕПРАВИЛЬНО Я ДЕЛАЮ
    #32729505
Алексей2003
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
If Trim(Cells(row, col).Offset(0, 1).Value) = Trim(m_sRegion) Then  ' M3:
            MsgBox "месяц " & m_sMonth & vbNewLine & _
            "название района " & m_sRegion & vbNewLine & _
            "найдено"
            Exit Sub
End If 
наверна все таки так надо?

для спящего время бодрствования равносильно сну
...
Рейтинг: 0 / 0
VBA Excel , СРАВНЕНИЕ СТРОК - ГДЕ НЕПРАВИЛЬНО Я ДЕЛАЮ
    #32729513
Milk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Processor , СПАСИБО, ответ имеется , сейчас скачаю,
...
Рейтинг: 0 / 0
VBA Excel , СРАВНЕНИЕ СТРОК - ГДЕ НЕПРАВИЛЬНО Я ДЕЛАЮ
    #32729535
Алексей2003
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще раз и по-русски грю
вы используете текущую ВЫДЕЛЕННУЮ ячейку
Код: plaintext
ActiveCell
такая кострукция ячейку не выделяет
Код: plaintext
Cells(row, col).Value

понятно изъясняю?

для спящего время бодрствования равносильно сну
...
Рейтинг: 0 / 0
VBA Excel , СРАВНЕНИЕ СТРОК - ГДЕ НЕПРАВИЛЬНО Я ДЕЛАЮ
    #32729586
Milk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей2003 , БОЛЬШОЕ СПАСИБО,

ВЫ ПРАВЫ, ИМЕННО ТАК.

PS: я, правда, вчера сам решил, добавив строку

Cells(row, col).Select ' waste one week for explain cause wrong job

надо было выбрать активную ячейку, которая была не выбрана
и оставлась вверху листа
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / VBA Excel , СРАВНЕНИЕ СТРОК - ГДЕ НЕПРАВИЛЬНО Я ДЕЛАЮ
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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