Доброй ночи всем. Допустим есть одномерный стринговый массив. Нужно найти номер элемента массива, где встречается искомое сочетание знаков, например "нод" или " 9" (пробел девять) Всё в коде vbа Excel. Спасибо ___________ Юрий.
Доброй ночи всем. Допустим есть одномерный стринговый массив. Нужно найти номер элемента массива, где встречается искомое сочетание знаков, например "нод" или " 9" (пробел девять) Всё в коде vbа Excel. Спасибо ___________ Юрий.Юрий_Нд
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]
Один из вариантов [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
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 iAlex2005-10