Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Поиск только по части строки / 19 сообщений из 19, страница 1 из 1
04.04.2007, 09:40:19
    #34436091
BANZAIASTANA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск только по части строки
Необходимо искать из 10 значного кода только по 6и7 номеру
и найденный код вставлять по назначению
...
Рейтинг: 0 / 0
04.04.2007, 09:43:27
    #34436104
BANZAIASTANA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск только по части строки
с помощью VBA
...
Рейтинг: 0 / 0
04.04.2007, 09:48:27
    #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
04.04.2007, 10:40:37
    #34436342
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск только по части строки
Кажись здесь поиском не получиться, надо использовать
Код: plaintext
For Each...Next statement with the Like operator


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

Используйте Чтобы найти
? (вопросительный знак) Любой одиночный символ в той же позиции, что и вопросительный знак
Например, «д?м» позволяет найти «дым» и «дом»
* (звездочка) Любое число символов в той же позиции, что и звездочка
Например, «секр*» позволяет найти «секрет» и «секретер»
~ (тильда), за которой следует ?, * или ~ Вопросительный знак, звездочку или тильду
Например, «что~?» позволяет найти «что?»
следовательно строка поиска д.б. примерно такая
Код: plaintext
"?????" & nn
и нужно параметры у Find проставить
Код: plaintext
1.
LookIn:=xlValues - искать значение
LookAt:=xlPart - ячейка не целиком
...
Рейтинг: 0 / 0
04.04.2007, 12:35:28
    #34436972
BANZAIASTANA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск только по части строки
Не мог бы показать на примере а то чето не получаеться у меня если конечно возможно
...
Рейтинг: 0 / 0
04.04.2007, 12:40:00
    #34436990
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск только по части строки
BANZAIASTANAНе мог бы показать на примере а то чето не получаеться у меня если конечно возможно
дай исходные данные и что надо найти
...
Рейтинг: 0 / 0
04.04.2007, 12:47:40
    #34437024
BANZAIASTANA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск только по части строки
на на лист3 скопировать таблицу с проектами у каждого которого есть код
и со второй таблицы также сопоставить проекты
а вот новые проекты которых нет в первой таблицы вставить согласно данным внутри кода
?????ХХ???
а ХХ это номер подразделния куда необходимо вставить проекты
...
Рейтинг: 0 / 0
04.04.2007, 14:01:55
    #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
04.04.2007, 15:29:19
    #34437806
BANZAIASTANA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск только по части строки
большое спасибо
попробую разобраться
...
Рейтинг: 0 / 0
04.04.2007, 15:44:59
    #34437879
BANZAIASTANA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск только по части строки
А еще необходимо что бы в начале макрос прошелся и нашел точные совпадения всего кода
а если код новый то по данным 6-7 символа распределить его в необходимом структурном подразделение
...
Рейтинг: 0 / 0
04.04.2007, 17:08:36
    #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
04.04.2007, 17:26:40
    #34438298
BANZAIASTANA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск только по части строки
Да макрос работает. Спасибо большое
но мне надо что бы если весь 10 значный код совпадает тогда копировать данные напротив
если нет то тогда по номерам 6-7 в коде добавить ниже в нужное структурное подразделение
6-7 символ это номер структурного подразделения столбец 2 в обоих таблицах
...
Рейтинг: 0 / 0
04.04.2007, 17:52:05
    #34438419
Deggasad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск только по части строки
BANZAIASTANAДа макрос работает. Спасибо большое
но мне надо что бы если весь 10 значный код совпадает тогда копировать данные напротив
если нет то тогда по номерам 6-7 в коде добавить ниже в нужное структурное подразделение
6-7 символ это номер структурного подразделения столбец 2 в обоих таблицах

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


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