powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Поиск только по части строки
19 сообщений из 19, страница 1 из 1
Поиск только по части строки
    #34436091
BANZAIASTANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Необходимо искать из 10 значного кода только по 6и7 номеру
и найденный код вставлять по назначению
...
Рейтинг: 0 / 0
Поиск только по части строки
    #34436104
BANZAIASTANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
с помощью VBA
...
Рейтинг: 0 / 0
Поиск только по части строки
    #34436122
BANZAIASTANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я делаю где так но он ищет только целиком а мне надо что бы только искал по 6и7
For j = 3 To 1000
nn = f2.Cells(j, 1)
If Len(Trim(f2.Cells(j, 1))) <> 0 Then
Set sobj = f3.Columns(1).Cells.Find(nn)
If Not sobj Is Nothing Then
fad = sobj.Address
Do
If nn = f3.Cells(sobj.Row, 1) Then
f3.Cells(sobj.Row, 11) = f2.Cells(j, 3)
f3.Cells(sobj.Row, 12) = f2.Cells(j, 4)
f3.Cells(sobj.Row, 13) = f2.Cells(j, 5)
f3.Cells(sobj.Row, 14) = f2.Cells(j, 6)

End If
Set sobj = f3.Columns(1).Cells.FindNext(sobj)
Loop While sobj.Address <> fad
End If
End If
Next j
...
Рейтинг: 0 / 0
Поиск только по части строки
    #34436342
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кажись здесь поиском не получиться, надо использовать
Код: plaintext
For Each...Next statement with the Like operator


I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
Поиск только по части строки
    #34436465
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если есть возможность - выдели на листе в соседние колонки эти позиции и работай себе :)
...
Рейтинг: 0 / 0
Поиск только по части строки
    #34436549
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F1Подстановочные знаки, используемые при поиске текста и чисел
Для поиска текста или чисел, содержащих общие символы или цифры, используйте подстановочные знаки. Подстановочный знак заменяет один или несколько неуказанных символов.

Используйте Чтобы найти
? (вопросительный знак) Любой одиночный символ в той же позиции, что и вопросительный знак
Например, «д?м» позволяет найти «дым» и «дом»
* (звездочка) Любое число символов в той же позиции, что и звездочка
Например, «секр*» позволяет найти «секрет» и «секретер»
~ (тильда), за которой следует ?, * или ~ Вопросительный знак, звездочку или тильду
Например, «что~?» позволяет найти «что?»
следовательно строка поиска д.б. примерно такая
Код: plaintext
"?????" & nn
и нужно параметры у Find проставить
Код: plaintext
1.
LookIn:=xlValues - искать значение
LookAt:=xlPart - ячейка не целиком
...
Рейтинг: 0 / 0
Поиск только по части строки
    #34436972
BANZAIASTANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не мог бы показать на примере а то чето не получаеться у меня если конечно возможно
...
Рейтинг: 0 / 0
Поиск только по части строки
    #34436990
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BANZAIASTANAНе мог бы показать на примере а то чето не получаеться у меня если конечно возможно
дай исходные данные и что надо найти
...
Рейтинг: 0 / 0
Поиск только по части строки
    #34437024
BANZAIASTANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на на лист3 скопировать таблицу с проектами у каждого которого есть код
и со второй таблицы также сопоставить проекты
а вот новые проекты которых нет в первой таблицы вставить согласно данным внутри кода
?????ХХ???
а ХХ это номер подразделния куда необходимо вставить проекты
...
Рейтинг: 0 / 0
Поиск только по части строки
    #34437377
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чего-то я ничего не понял попробуй сформулировать задачу по другому
BANZAIASTANAНеобходимо искать из 10 значного кода только по 6и7 номеру
и найденный код вставлять по назначению
я понял так, допустим есть столбец
1111122111
1111133111
1111122111
1111122111
1111122111
1111122111
и нужно найти записи у которых 6-ой и 7-ой символ, дапустим равен 22
Так?
если да
то это можно сделать так
Код: plaintext
1.
2.
3.
        If Len(nn) >  0  And Len(nn) <  3  Then
            nn = "?????" & Format(nn, "00") & "???"
        End If
        Set sobj = f3.Columns( 1 ).Find(What:=nn, After:=f3.Columns( 1 ).Cells( 3 ,  1 ), LookIn:=xlValues, LookAt:=xlPart)
если тебе надо вычленить из стороки 6-ой и 7-ой символы, то это делается так
Код: plaintext
nn = Mid(f2.Cells(j,  1 ),  6 ,  2 )
и потом делается поиск.
...
Рейтинг: 0 / 0
Поиск только по части строки
    #34437806
BANZAIASTANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
большое спасибо
попробую разобраться
...
Рейтинг: 0 / 0
Поиск только по части строки
    #34437879
BANZAIASTANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А еще необходимо что бы в начале макрос прошелся и нашел точные совпадения всего кода
а если код новый то по данным 6-7 символа распределить его в необходимом структурном подразделение
...
Рейтинг: 0 / 0
Поиск только по части строки
    #34438218
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Советую код на листе заменить на этот, сам поймёшь в чём разница

Код: 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.
Private Sub CommandButton1_Click()
Load UserForm1
UserForm1.Caption = "Ââåäèòå íàçâàíèå ëèñòà óòâåðæäåííîãî ÈÁ  äëÿ ñðàíåíèÿ"
UserForm1.Show
kk = UserForm1.ListBox1.Value 'InputBox("Ââåäèòå íàçâàíèå ëèñòà óòâåðæäåííîãî ÈÁ  äëÿ ñðàíåíèÿ")
Unload UserForm1
Load UserForm1
UserForm1.Caption = "Âââåäèòå íàçâàíèå âòîðîãî ëèñòà îòêîððåêòèðîâàííîãî ÈÁ äëÿ ñðàâíåíèÿ"
UserForm1.Show
oo = UserForm1.ListBox1.Value 'InputBox("Âââåäèòå íàçâàíèå âòîðîãî ëèñòà îòêîððåêòèðîâàííîãî ÈÁ äëÿ ñðàâíåíèÿ")
Unload UserForm1

Set f1 = ThisWorkbook.Worksheets(kk) ' Workbooks("ÔîðìàÈÏ.xls").Sheets(kk)
Set f2 = ThisWorkbook.Worksheets(oo) 'Workbooks("ÔîðìàÈÏ.xls").Sheets(oo)
Set f3 = ActiveSheet ' Workbooks("ÔîðìàÈÏ.xls").Sheets("ñðàâíåíèå")
 10  ff = InputBox("Ââåäèòå ïàðîëü", , ff)
If ff = "231726" Then

    If f1.Cells( 1 ,  1 ) = f2.Cells( 1 ,  1 ) Then
            f3.Range(Cells( 3 ,  1 ).Address, Cells( 1000 ,  1 ).Address).Value = f1.Range(Cells( 3 ,  1 ).Address, Cells( 1000 ,  1 ).Address).Value
    End If

    If f1.Cells( 1 ,  2 ) = f2.Cells( 1 ,  2 ) Then
            f3.Range(Cells( 3 ,  2 ).Address, Cells( 1000 ,  2 ).Address).Value = f1.Range(Cells( 3 ,  2 ).Address, Cells( 1000 ,  2 ).Address).Value
    End If

    If f1.Cells( 1 ,  3 ) = f2.Cells( 1 ,  3 ) Then
            f3.Range(Cells( 3 ,  3 ).Address, Cells( 1000 ,  3 ).Address).Value = f1.Range(Cells( 3 ,  3 ).Address, Cells( 1000 ,  3 ).Address).Value
    End If

    If f1.Cells( 1 ,  4 ) = f2.Cells( 1 ,  4 ) Then
            f3.Range(Cells( 3 ,  4 ).Address, Cells( 1000 ,  4 ).Address).Value = f1.Range(Cells( 3 ,  4 ).Address, Cells( 1000 ,  4 ).Address).Value
    End If

    If f1.Cells( 1 ,  5 ) = f2.Cells( 1 ,  5 ) Then
            f3.Range(Cells( 3 ,  5 ).Address, Cells( 1000 ,  5 ).Address).Value = f1.Range(Cells( 3 ,  5 ).Address, Cells( 1000 ,  5 ).Address).Value
    End If

    If f1.Cells( 1 ,  6 ) = f2.Cells( 1 ,  6 ) Then
            f3.Range(Cells( 3 ,  6 ).Address, Cells( 1000 ,  6 ).Address).Value = f1.Range(Cells( 3 ,  6 ).Address, Cells( 1000 ,  6 ).Address).Value
    End If
    For j =  3  To  1000 
        nn = f2.Cells(j,  1 )
        nn = "?????" & Format(Mid(nn,  6 ,  2 ), "00") & "???"
        If Len(Trim(f2.Cells(j,  1 ))) <>  0  Then
            Set sobj = f3.Columns( 1 ).Find(What:=nn, After:=f3.Columns( 1 ).Cells( 3 ,  1 ), LookIn:=xlValues, LookAt:=xlPart)
            If Not sobj Is Nothing Then
                fad = sobj.Address
                Do
                    If nn = f3.Cells(sobj.Row,  1 ) Then
                        f3.Range(Cells(sobj.Row,  11 ).Address, Cells(sobj.Row,  14 ).Address).Value = f2.Range(Cells(j,  3 ).Address, Cells(j,  6 ).Address).Value
                    Else
                        f3.Cells(sobj.Row +  1 ,  1 ).EntireRow.Insert
                        f3.Range(Cells(sobj.Row +  1 ,  11 ).Address, Cells(sobj.Row +  1 ,  14 ).Address).Value = f2.Range(Cells(j,  3 ).Address, Cells(j,  6 ).Address).Value
                    End If
                    Set sobj = f3.Columns( 1 ).FindNext(sobj)
                Loop While sobj.Address <> fad
            End If
        End If
    Next j
ElseIf ff = "" Then
    Exit Sub
Else
    MsgBox "Ïàðîëü íå âåðíûé"
    GoTo  10 
End If
End Sub
...
Рейтинг: 0 / 0
Поиск только по части строки
    #34438298
BANZAIASTANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да макрос работает. Спасибо большое
но мне надо что бы если весь 10 значный код совпадает тогда копировать данные напротив
если нет то тогда по номерам 6-7 в коде добавить ниже в нужное структурное подразделение
6-7 символ это номер структурного подразделения столбец 2 в обоих таблицах
...
Рейтинг: 0 / 0
Поиск только по части строки
    #34438419
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BANZAIASTANAДа макрос работает. Спасибо большое
но мне надо что бы если весь 10 значный код совпадает тогда копировать данные напротив
если нет то тогда по номерам 6-7 в коде добавить ниже в нужное структурное подразделение
6-7 символ это номер структурного подразделения столбец 2 в обоих таблицах

А если код совпадает но цифры изменились. Он этого не покажет какое-же это тогда сравнение?
...
Рейтинг: 0 / 0
Поиск только по части строки
    #34438463
BANZAIASTANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если код полностью совпадает то тогда напротив вставить необходимые данные
может быть такое что вводиться новый код которого небыло в старой таблице(№1)
тогда надо по 6-7 символу вставить данные в необходимый диапазон
эт надо что сравнить на сколько увеличилась общая сумма и покаким причинам например чтоесть нвый проект и т.д.
...
Рейтинг: 0 / 0
Поиск только по части строки
    #34438550
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BANZAIASTANAЕсли код полностью совпадает то тогда напротив вставить необходимые данные
может быть такое что вводиться новый код которого небыло в старой таблице(№1)
тогда надо по 6-7 символу вставить данные в необходимый диапазон
эт надо что сравнить на сколько увеличилась общая сумма и покаким причинам например чтоесть нвый проект и т.д.
Если проделать полностью описанную тобой операцию, то она получится равнозначной тому чтобы вставить таблицу 2 полностью! Если там где совпадает вставить из таблицы 2 цифры, а там где не совпадает тоже из таблицы 2 ????
...
Рейтинг: 0 / 0
Поиск только по части строки
    #34439014
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть предложение!
Перегнать всё это в плоский файл. А потом уже хочешь сводную строй и смотри отклонения, хочешь автофилтрами играйся. Посмотри мож понравится!
только немного исходные данные изменил, но это можно автоматом сделать!
...
Рейтинг: 0 / 0
Поиск только по части строки
    #34439385
BANZAIASTANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое вотэтого и надо было
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Поиск только по части строки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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