Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Выборка Добавлено: 08.11.06 11:44  

Автор вопроса:  ddv_ddv
Всем доброго дня!
Помогите пжлст. Делаю выборку с нескольких листов и что-то не получается. Вот код:

Sub MyVyborka()
Dim NOMER1, NOMER2, Inom1, Inom2, i, j, k
Лист1.Select

Inom1 = Columns(1).Rows(65536).End(xlUp).Row
Inom2 = Columns(8).Rows(65536).End(xlUp).Row
k = 1
For i = 1 To Inom1
    NOMER1 = Range("A" & i).Value
    Лист2.Select
     For j = 1 To Inom2
        NOMER2 = Range("H" & j).Value
       If InStr(1, NOMER1, NOMER2) > 1 Then
   Лист3.Select
Range("A" & k).Value = NOMER2
k = k + 1
       End If
     Next j

Лист1.Select

Next i

End Sub

Ответить

  Ответы Всего ответов: 3  

Номер ответа: 1
Автор ответа:
 GenyaA



Вопросов: 0
Ответов: 185
 Web-сайт: www.genyaa.nm.ru
 Профиль | | #1
Добавлено: 08.11.06 13:30
Проверять не проверял.. но просто заменил Select на явное обращение на листы по Item. Попробуйте.

Sub MyVyborka()
Dim NOMER1 As Long, NOMER2 As Long, Inom1 As Long, Inom2 As Long, i As Long, j As Long, k As Long
'   Лист1.Select

Inom1 = Sheets("Лист1";).Columns(1).Rows(65536).End(xlUp).Row
Inom2 = Sheets("Лист1";).Columns(8).Rows(65536).End(xlUp).Row
k = 1
For i = 1 To Inom1
    NOMER1 = Sheets("Лист1";).Range("A" & i).Value
'    Лист2.Select
     For j = 1 To Inom2
        NOMER2 = Sheets("Лист2";).Range("H" & j).Value
       If InStr(1, NOMER1, NOMER2) > 1 Then
'   Лист3.Select
        Sheets("Лист3";).Range("A" & k).Value = NOMER2
        k = k + 1
       End If
     Next j
'   Лист1.Select
Next i
End Sub

Ответить

Номер ответа: 2
Автор ответа:
 ddv_ddv



Вопросов: 2
Ответов: 3
 Профиль | | #2 Добавлено: 08.11.06 13:45
:((
Вот здесь споткнулся:
NOMER1 = Sheets("Лист1";).Range("A" & i).Value

Run-time eror '13'

Ответить

Номер ответа: 3
Автор ответа:
 ddv_ddv



Вопросов: 2
Ответов: 3
 Профиль | | #3 Добавлено: 08.11.06 14:04
Вообще макрос работает.Я добавил проверку

Sub MyVyborka()
Dim NOMER1, NOMER2, Inom1, Inom2, i, j, k, h, l
Лист1.Activate 'Select

Inom1 = Columns(1).Rows(65536).End(xlUp).Row
Inom2 = Columns(8).Rows(65536).End(xlUp).Row
k = 1
h = 1
l = 1
For i = 1 To Inom1
    NOMER1 = Range("A" & i).Value
    Лист2.Activate 'Select
     For j = 1 To Inom2
        NOMER2 = Range("H" & j).Value
       If InStr(1, NOMER1, NOMER2) > 1 Then
   Лист3.Activate 'Select
Range("A" & k).Value = NOMER2
k = k + 1
GoTo 2
       End If
     Range("K" & l).Value = NOMER1
     h = h + 1
     Range("L" & l).Value = NOMER2
     l = l + 1
    Next j

2:

Next i

End Sub
только не знаю как вытащить наружу:


If InStr(1, NOMER1, NOMER2) > 1 Then

Проверка происходит внутри Листа2 и все значения вылерают в отстойник

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам