Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2017, 14:00   #1
Kot070
Форумчанин
 
Регистрация: 22.12.2012
Сообщений: 139
По умолчанию Block with+if

Добрый день, подскажите как сделать чтобы работала проверка когда я выбираю другую книгу.В 1 экземпляре Excel открыто 2 книги
Сейчас выделяет желтым строку if и выдает сообщение "Object variable or With block variable not set"
Код:
  With Workbooks(istok).Sheets(1).Activate 'переключаю на другую книги и активирую нужный лист
          lLastRow = Sheets(1).Cells.SpecialCells(xlLastCell).Row
            If Sheets(1).Rows("3:3").Find(What:="Test")Then
                Sheets(1).Rows("3:3").Find(What:="test").Activate
                adr = ActiveCell.Address
                new_adr = Left(adr, 3)
                Sheets(1).Range(adr & ":" & new_adr & lLastRow + 2).Select
                Selection.Copy
             Else
              Exit Sub
             End If
    End With
Kot070 вне форума Ответить с цитированием
Старый 07.05.2017, 15:34   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

код написан в соотв. с синтаксисом VBA, макрос начинает выполняться без предупреждений
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 07.05.2017, 15:40   #3
Kot070
Форумчанин
 
Регистрация: 22.12.2012
Сообщений: 139
По умолчанию

Так он не выполняется до конца, а останавливается на строке if
Kot070 вне форума Ответить с цитированием
Старый 07.05.2017, 17:51   #4
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

при такой ошибке всегда прописываю полные определения елемента. Может Sheets(1) заменить на Workbooks(istok).Sheets(1) или "." спереди поставить
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 07.05.2017, 21:12   #5
Kot070
Форумчанин
 
Регистрация: 22.12.2012
Сообщений: 139
По умолчанию

Если меняю на Workbooks(istok).Sheets(1) ошибка такая же, если просто "." ошибка Object required
Kot070 вне форума Ответить с цитированием
Старый 08.05.2017, 08:28   #6
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Нафига Вам там With? Чтоб лист активировать? Уберите его и ничего не изменится, а букв станет меньше. Попробуйте:
Код:
With Workbooks(istok).Sheets(1)
.Activate 
 lLastRow = .Cells.SpecialCells(xlLastCell).Row
 If Not .Rows("3:3").Find("Test") Is Nothing Then
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728

Последний раз редактировалось kuklp; 08.05.2017 в 08:33.
kuklp вне форума Ответить с цитированием
Старый 08.05.2017, 08:49   #7
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

И не надо ничего активировать:
Код:
   With Workbooks(istok).Sheets(1)
        lLastRow = .Cells.SpecialCells(xlLastCell).Row
        If Not .Rows(3).Find("Test") Is Nothing Then
            adr = .Rows(3).Find(What:="test").Address
            new_adr = Left(adr, 3)
            .Range(adr & ":" & new_adr & lLastRow + 2).Copy
        Else
            Exit Sub
        End If
    End With
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
interbase execute block bazanin SQL, базы данных 2 29.01.2013 11:10
Block if without end if (error) zlobnaya Microsoft Office Excel 9 12.05.2012 22:25
Display block не block mrgrudge HTML и CSS 2 25.12.2010 11:10