Страницы: 1
RSS
Как назначить конкретный лист для работы данного макроса?
 
Добрый вечер, уважаемый Форум.
Подскажите, пожалуйста, как назначить конкретный лист ("СПРАВОЧНИК") для работы данного кода? Чтобы находясь на листе "Рабочий" обойтись без активации листа "СПРАВОЧНИК". Пробовал добавлять в строки с ???????    "Sheets("СПРАВОЧНИК")."--не помогло.
Код
Sub FinderNew()
Dim rw As Long, i As Long, x
    rw = Cells(Rows.Count, "br").End(xlUp).Row '????????????
    x = 0
    With numFGNew
        For i = 2 To rw
            'If Cells(i, 4) = .ComboBox1 Then
            If CStr(Cells(i, 70)) = .ComboBox1 Then '????????????
                'If Cells(i, 5) = .ComboBox2 Then
                    'If Cells(i, 6) = .ComboBox5 Then
                        'If Cells(i, 7) = CDate(.ComboBox4) Then
                            .ListBox1.AddItem ""
                            .ListBox1.List(x, 0) = i
                            .ListBox1.List(x, 1) = Cells(i, 97)  '????????????.
                            x = x + 1
                        End If
                    'End If
                'End If
           ' End If
        Next
    End With
'Stop
End Su
Изменено: iNic - 19.03.2015 21:41:14
 
Используйте конструкцию With - End With и не забывайте при этом ставить точки перед Cells.
P.S. Своё сообщение можно редактировать и привести код в порядок.
 
Так наверно
Код
Sheets("СПРАВОЧНИК").Cells(...,..)

Не увидел сразу, что это уже пробовали.
Изменено: gling - 19.03.2015 21:49:27
 
Цитата
Пробовал добавлять в строки с ???????    "Sheets("СПРАВОЧНИК";)."--не помогло.
После ";)" с точкой. Не помогло.

А куда вставлять  
Цитата
конструкцию With - End With

?
Изменено: iNic - 19.03.2015 21:40:01
 
Код
dim sh as object
set sh=Sheets("СПРАВОЧНИК")

и далее всюду вместо cells пишите sh.cells, и перед rows.count тоже ставьте sh.
 
А можно пример посмотреть? Мааааленький такой примерчик.
 
Всем спасибо. Сделал с рекомендациями Юрий М
Код
Sub FinderNew()
 With Sheets("СПРАВОЧНИК")
 Dim rw As Long, i As Long, x
    rw = Sheets("СПРАВОЧНИК").Cells(Rows.Count, "br").End(xlUp).Row '
    x = 0
    With numFGNew
        For i = 2 To rw
            'If Cells(i, 4) = .ComboBox1 Then
            If CStr(Sheets("СПРАВОЧНИК").Cells(i, 70)) = .ComboBox1 Then '
                'If Cells(i, 5) = .ComboBox2 Then
                    'If Cells(i, 6) = .ComboBox5 Then
                        'If Cells(i, 7) = CDate(.ComboBox4) Then
                            .ListBox1.AddItem ""
                            .ListBox1.List(x, 0) = i
                            .ListBox1.List(x, 1) = Sheets("СПРАВОЧНИК").Cells(i, 97)  '
                            x = x + 1
                        End If
                    'End If
                'End If
           ' End If
        Next
    End With
End With
End Sub
 
Цитата
iNic написал: Пробовал добавлять в строки с Sheets("СПРАВОЧНИК")."--не помогло
Просто интересно, а куда Вы это добавляли до рекомендаций Юрия?
Согласие есть продукт при полном непротивлении сторон
 
Sheets("СПРАВОЧНИК").--в те же места, что и в окончательном варианте.
Но без With--End With не работало.
 
WithSheets("СПРАВОЧНИК") совершенно без толку добавили. На Rows.count можете получить ошибку.
 
Hugo, попробовал. Всё нормально. В разных вариантах. Может в другом файле и будут ошибки, но с моими условиями работает нормально. И почему-то без этих строчек не работает.
Спасибо.
Страницы: 1
Наверх