Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Найти номер элемента с искомым сочетанием знаков. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Найти номер элемента с искомым сочетанием знаков.
Юрий_Нд Дата: Пятница, 24.05.2019, 01:15 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 441
Репутация: 19 ±
Замечаний: 0% ±

Excel 2013
Доброй ночи всем.
Допустим есть одномерный стринговый массив.
Нужно найти номер элемента массива, где встречается искомое сочетание знаков, например "нод" или " 9" (пробел девять)
Всё в коде vbа Excel.
Спасибо ___________ Юрий.
К сообщению приложен файл: 3708254.xlsx (8.4 Kb)
 
Ответить
СообщениеДоброй ночи всем.
Допустим есть одномерный стринговый массив.
Нужно найти номер элемента массива, где встречается искомое сочетание знаков, например "нод" или " 9" (пробел девять)
Всё в коде vbа Excel.
Спасибо ___________ Юрий.

Автор - Юрий_Нд
Дата добавления - 24.05.2019 в 01:15
_Boroda_ Дата: Пятница, 24.05.2019, 10:17 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16718
Репутация: 6505 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Один из вариантов
[vba]
Код
Sub tt()
    r0_ = 4
    c1_ = 3
    c2_ = 5
    n1_ = Cells(Rows.Count, c1_).End(3).Row - r0_ + 1
    n2_ = Cells(Rows.Count, c2_).End(3).Row - r0_ + 1
    ar1 = Cells(r0_, c1_).Resize(n1_)
    Cells(r0_, c2_ + 1).Resize(n2_).ClearContents
    ar2 = Cells(r0_, c2_).Resize(n2_, 2)
    For j = 1 To n2_
        For i = 1 To n1_
            If InStr(1, ar1(i, 1), ar2(j, 1), 0) Then ' если ищем без учета регистра, то 1 вместо 0
                ar2(j, 2) = i
                Exit For
            End If
        Next i
    Next j
    Cells(r0_, c2_).Resize(n2_, 2) = ar2
End Sub
[/vba]
К сообщению приложен файл: 3708254_1.xlsm (15.5 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеОдин из вариантов
[vba]
Код
Sub tt()
    r0_ = 4
    c1_ = 3
    c2_ = 5
    n1_ = Cells(Rows.Count, c1_).End(3).Row - r0_ + 1
    n2_ = Cells(Rows.Count, c2_).End(3).Row - r0_ + 1
    ar1 = Cells(r0_, c1_).Resize(n1_)
    Cells(r0_, c2_ + 1).Resize(n2_).ClearContents
    ar2 = Cells(r0_, c2_).Resize(n2_, 2)
    For j = 1 To n2_
        For i = 1 To n1_
            If InStr(1, ar1(i, 1), ar2(j, 1), 0) Then ' если ищем без учета регистра, то 1 вместо 0
                ar2(j, 2) = i
                Exit For
            End If
        Next i
    Next j
    Cells(r0_, c2_).Resize(n2_, 2) = ar2
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 24.05.2019 в 10:17
Alex2005-10 Дата: Суббота, 25.05.2019, 22:49 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Делал аналогичное, попробуйте так:

Iskomoe = "нод"

Sumb_Col_Iskomoe = Len(Iskomoe) 'Получаем количество искомых символов
For i = 1 To Array_Data_End 'Прогоняем весь массив
Sumb_Col = Len(Array_Data(i)) 'Получаем количество символов элемента массива
If Sumb_Col_Iskomoe <= Sumb_Col Then
For k = 1 To Sumb_Col - Sumb_Col_Iskomoe + 1
Sumbol_Temp = Mid(Array_All_Data(i), k, Sumb_Col_Iskomoe) 'Получаем символы из элемента
If Sumbol_Temp = Iskomoe Then
'Нашли совпадение в элементе массива - делаем что хотели
End If
Next k
End If
Next i
 
Ответить
СообщениеДелал аналогичное, попробуйте так:

Iskomoe = "нод"

Sumb_Col_Iskomoe = Len(Iskomoe) 'Получаем количество искомых символов
For i = 1 To Array_Data_End 'Прогоняем весь массив
Sumb_Col = Len(Array_Data(i)) 'Получаем количество символов элемента массива
If Sumb_Col_Iskomoe <= Sumb_Col Then
For k = 1 To Sumb_Col - Sumb_Col_Iskomoe + 1
Sumbol_Temp = Mid(Array_All_Data(i), k, Sumb_Col_Iskomoe) 'Получаем символы из элемента
If Sumbol_Temp = Iskomoe Then
'Нашли совпадение в элементе массива - делаем что хотели
End If
Next k
End If
Next i

Автор - Alex2005-10
Дата добавления - 25.05.2019 в 22:49
Pelena Дата: Воскресенье, 26.05.2019, 09:13 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 19405
Репутация: 4555 ±
Замечаний: ±

Excel 365 & Mac Excel
Alex2005-10, оформите код тегами с помощью кнопки # в режиме правки поста. Это касается всех Ваших постов с кодами


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеAlex2005-10, оформите код тегами с помощью кнопки # в режиме правки поста. Это касается всех Ваших постов с кодами

Автор - Pelena
Дата добавления - 26.05.2019 в 09:13
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!