powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / VBA поиск в массиве
13 сообщений из 13, страница 1 из 1
VBA поиск в массиве
    #38399663
Fireman13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день. Помогите плз. Вот код. Как вывести мне номер найденой строки.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Sub test()
ad = [A:A]
Z = 0
For i = 1 To UBound(ad)
    If Range("B" & i).Find([A1], , , xlWhole) Is Nothing Then
    End If
    Next
    MsgBox Z
End Sub
...
Рейтинг: 0 / 0
VBA поиск в массиве
    #38399672
Fireman13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fireman13,

Все спасибо чет меня в циклило.
Вот правильное решение If Not Range("B" & i).Find([A1], , , xlWhole) Is Nothing Then
...
Рейтинг: 0 / 0
VBA поиск в массиве
    #38399770
Fireman13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему тут ошибку выдает?

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Sub test()
rr = Range("H10").Value
ll = DatePart("d", rr) & "." & DatePart("m", rr)
af = 2
While &#203;&#232;&#241;&#242;1.Cells(af, 1) <> ""
af = af + 1
Wend
ReDim ad(1 To af - 1)
af1 = 1
While &#203;&#232;&#241;&#242;1.Cells(af1, 1) <> ""
ad(af1) = DatePart("d", Left(&#203;&#232;&#241;&#242;1.Cells(af1, 1), 10)) & "." & DatePart("m", Left(&#203;&#232;&#241;&#242;1.Cells(af1, 1), 10))
af1 = af1 + 1
Wend
Z = 0
For iy = 1 To UBound(ad)
If Not ad(iy).Find(ll) Is Nothing Then
Z = iy
iy = UBound(ad)
End If
Next
Range("H11").Value = ll
End Sub
...
Рейтинг: 0 / 0
VBA поиск в массиве
    #38399776
Fireman13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fireman13Почему тут ошибку выдает?

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Sub test()
rr = Range("H10").Value
ll = DatePart("d", rr) & "." & DatePart("m", rr)
af = 2
While Лист1.Cells(af, 1) <> ""
af = af + 1
Wend
ReDim ad(1 To af - 1)
af1 = 1
While Лист1.Cells(af1, 1) <> ""
ad(af1) = DatePart("d", Left(Лист1;1.Cells(af1, 1), 10)) & "." & DatePart("m", Left(Лист1.Cells(af1, 1), 10))
af1 = af1 + 1
Wend
Z = 0
For iy = 1 To UBound(ad)
If Not ad(iy).Find(ll) Is Nothing Then
Z = iy
iy = UBound(ad)
End If
Next
Range("H11").Value = ll
End Sub
...
Рейтинг: 0 / 0
VBA поиск в массиве
    #38399788
Фотография Surrogate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кто здесь ?
...
Рейтинг: 0 / 0
VBA поиск в массиве
    #38399805
Fireman13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Surrogateкто здесь ? ????
...
Рейтинг: 0 / 0
VBA поиск в массиве
    #38399812
Фотография Surrogate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fireman13,

Зачем дублируешь сообщения в теме и темы с одинаковыми названиями :)
И почему-то не пишешь о том, какая ошибка и в какой строке выскакивает !
Здесь шоу "Битва экстрасенсов" :(
...
Рейтинг: 0 / 0
VBA поиск в массиве
    #38399834
Fireman13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SurrogateFireman13,

Зачем дублируешь сообщения в теме и темы с одинаковыми названиями :)
И почему-то не пишешь о том, какая ошибка и в какой строке выскакивает !
Здесь шоу "Битва экстрасенсов" :(
Sorry. У меня такая ситуация. Есть массив данных в таком формате (01.09.2013 - понедельник)
Необходимо проверить дату например (01.09.2013) существует она или нет, если да то ее номер порядковый.
С помощью этой функции я дату которую надо найти приравниваю к одному ввиду в данном случае (1.9)
Код: vbnet
1.
2.
3.
4.
Sub test()
rr = Range("H10").Value
ll = DatePart("d", rr) & "." & DatePart("m", rr)
af = 2


Код: vbnet
1.
2.
3.
4.
5.
While Лист1.Cells(af, 1) <> ""
af = af + 1
Wend
ReDim ad(1 To af - 1)' Просматриваю количество записей в столбце для заполнения массива
af1 = 1


С помощью вот этого я делаю даты в массиве в тот же формат
Код: vbnet
1.
2.
3.
4.
While Лист1.Cells(af1, 1) <> ""
ad(af1) = DatePart("d", Left(Лист1.Cells(af1, 1), 10)) & "." & DatePart("m", Left(Лист1.Cells(af1, 1), 10))
af1 = af1 + 1
Wend


С помощью вот этого цикла я ищу построчно данную дату.
Код: vbnet
1.
2.
3.
4.
5.
6.
Z = 0
For iy = 1 To UBound(ad)
If Not ad(iy).Find(ll) Is Nothing Then' ВОТ ТУТ И ВЫДАЕТ ОШИБКУ
Z = iy
iy = UBound(ad)
End If


НУ и вывожу номер строки
Код: vbnet
1.
2.
3.
Next
Range("H11").Value = ll
End Sub
...
Рейтинг: 0 / 0
VBA поиск в массиве
    #38399849
Fireman13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fireman13SurrogateFireman13,

Зачем дублируешь сообщения в теме и темы с одинаковыми названиями :)
И почему-то не пишешь о том, какая ошибка и в какой строке выскакивает !
Здесь шоу "Битва экстрасенсов" :(
Sorry. У меня такая ситуация. Есть массив данных в таком формате (01.09.2013 - понедельник)
Необходимо проверить дату например (01.09.2013) существует она или нет, если да то ее номер порядковый.
С помощью этой функции я дату которую надо найти приравниваю к одному ввиду в данном случае (1.9)
Код: vbnet
1.
2.
3.
4.
Sub test()
rr = Range("H10").Value
ll = DatePart("d", rr) & "." & DatePart("m", rr)
af = 2


Код: vbnet
1.
2.
3.
4.
5.
While Лист1.Cells(af, 1) <> ""
af = af + 1
Wend
ReDim ad(1 To af - 1)' Просматриваю количество записей в столбце для заполнения массива
af1 = 1


С помощью вот этого я делаю даты в массиве в тот же формат
Код: vbnet
1.
2.
3.
4.
While Лист1.Cells(af1, 1) <> ""
ad(af1) = DatePart("d", Left(Лист1.Cells(af1, 1), 10)) & "." & DatePart("m", Left(Лист1.Cells(af1, 1), 10))
af1 = af1 + 1
Wend


С помощью вот этого цикла я ищу построчно данную дату.
Код: vbnet
1.
2.
3.
4.
5.
6.
Z = 0
For iy = 1 To UBound(ad)
If Not ad(iy).Find(ll) Is Nothing Then' ВОТ ТУТ И ВЫДАЕТ ОШИБКУ
Z = iy
iy = UBound(ad)
End If


НУ и вывожу номер строки
Код: vbnet
1.
2.
3.
Next
Range("H11").Value = ll
End Sub
...
Рейтинг: 0 / 0
VBA поиск в массиве
    #38399905
Фотография lbppb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fireman13,

Судя по вашеу коду, у меня складывается впечатление, что вы учавстуете в конкурсе по усложнению решения, поставленных задач и у вас все шансы победить. Выложите файл, посмотрим на ваши данные.

А что касается ошибки, вот вам один занятный пример:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Sub test()

Dim i As Integer
Dim ad(1 To 10)
Dim ll As String

ll = "asdf"

ad(5) = "asdf"

For i = 1 To UBound(ad)
    If ad(i) = ll Then
        Exit For
    End If
Next

Debug.Print i

End Sub
...
Рейтинг: 0 / 0
VBA поиск в массиве
    #38399908
Fireman13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lbppbFireman13,

Судя по вашеу коду, у меня складывается впечатление, что вы учавстуете в конкурсе по усложнению решения, поставленных задач и у вас все шансы победить. Выложите файл, посмотрим на ваши данные.

А что касается ошибки, вот вам один занятный пример:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Sub test()

Dim i As Integer
Dim ad(1 To 10)
Dim ll As String

ll = "asdf"

ad(5) = "asdf"

For i = 1 To UBound(ad)
    If ad(i) = ll Then
        Exit For
    End If
Next

Debug.Print i

End Sub



Большое спасибо!!!
Чет меня вциклило опять!!! Зачем искать если можно сравнивать!!! Большое спасибо bppb
...
Рейтинг: 0 / 0
VBA поиск в массиве
    #38399998
Фотография lbppb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fireman13,

Все куда проще.
...
Рейтинг: 0 / 0
VBA поиск в массиве
    #38400325
Fireman13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lbppb,

Большое спасибо за помощь.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / VBA поиск в массиве
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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