Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Application-defined or object-defined error - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Application-defined or object-defined error (Макросы/Sub)
Application-defined or object-defined error
Jekaterina Дата: Воскресенье, 26.03.2017, 09:44 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 60% ±

Excel 2007
У меня 3 файла, которые находятся в открытом виде.

[vba]
Код
Sub exercise()

Dim r3, r4 As Range
Dim lcolumnplan, lastrowplan As Long
Dim lastrow, lcolumn As Long

Set w2 = Workbooks("Book4.xlsm")
Set w3 = Workbooks("book1.xlsm")

With w2
lcolumn = .Sheets("forecast").Cells(2, Columns.Count).End(xlToLeft).Column
lastrow = .Sheets("forecast").Cells(Rows.Count, 1).End(xlUp).Row
Set r3 = .Sheets("forecast").Range(Cells(2, 2), Cells(lastrow, lcolumn))
End With

With w3
lcolumnplan = .Sheets("Sheet1").Cells(1, Columns.Count).End(xlToLeft).Column
lastrowplan = .Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
Set r4 = .Sheets("Sheet1").Range(Cells(1, 1), Cells(lastrowplan, lcolumnplan))
End With

End Sub
[/vba]

В r4 выдает оштбку 1004: Application-defined or object-defined error

Листы unprotect:
Когда делаю пошагово:
если я открываю Protect sheet.. и закрываю в w2 и после r3 я открываю Protect sheet в w3, то все работает и ошибок не выдает.
Как можно решить эту проблему БЕЗ открываний-закрываний.


Сообщение отредактировал Jekaterina - Воскресенье, 26.03.2017, 10:10
 
Ответить
СообщениеУ меня 3 файла, которые находятся в открытом виде.

[vba]
Код
Sub exercise()

Dim r3, r4 As Range
Dim lcolumnplan, lastrowplan As Long
Dim lastrow, lcolumn As Long

Set w2 = Workbooks("Book4.xlsm")
Set w3 = Workbooks("book1.xlsm")

With w2
lcolumn = .Sheets("forecast").Cells(2, Columns.Count).End(xlToLeft).Column
lastrow = .Sheets("forecast").Cells(Rows.Count, 1).End(xlUp).Row
Set r3 = .Sheets("forecast").Range(Cells(2, 2), Cells(lastrow, lcolumn))
End With

With w3
lcolumnplan = .Sheets("Sheet1").Cells(1, Columns.Count).End(xlToLeft).Column
lastrowplan = .Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
Set r4 = .Sheets("Sheet1").Range(Cells(1, 1), Cells(lastrowplan, lcolumnplan))
End With

End Sub
[/vba]

В r4 выдает оштбку 1004: Application-defined or object-defined error

Листы unprotect:
Когда делаю пошагово:
если я открываю Protect sheet.. и закрываю в w2 и после r3 я открываю Protect sheet в w3, то все работает и ошибок не выдает.
Как можно решить эту проблему БЕЗ открываний-закрываний.

Автор - Jekaterina
Дата добавления - 26.03.2017 в 09:44
Pelena Дата: Воскресенье, 26.03.2017, 09:57 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19187
Репутация: 4421 ±
Замечаний: ±

Excel 365 & Mac Excel
Jekaterina, оформите код тегами с помощью кнопки # в режиме правки поста


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеJekaterina, оформите код тегами с помощью кнопки # в режиме правки поста

Автор - Pelena
Дата добавления - 26.03.2017 в 09:57
nilem Дата: Воскресенье, 26.03.2017, 11:03 | Сообщение № 3
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
наверное так:
[vba]
Код
With w2.Sheets("forecast")
    lcolumn = .Cells(2, Columns.Count).End(xlToLeft).Column
    lastrow = .Cells(Rows.Count, 1).End(xlUp).Row
    Set r3 = .Range(.Cells(2, 2), .Cells(lastrow, lcolumn))
End With

With w3.Sheets("Sheet1")
    lcolumnplan = .Cells(1, Columns.Count).End(xlToLeft).Column
    lastrowplan = .Cells(Rows.Count, 1).End(xlUp).Row
    Set r4 = .Range(.Cells(1, 1), .Cells(lastrowplan, lcolumnplan))
End With
[/vba]


Яндекс.Деньги 4100159601573
 
Ответить
Сообщениенаверное так:
[vba]
Код
With w2.Sheets("forecast")
    lcolumn = .Cells(2, Columns.Count).End(xlToLeft).Column
    lastrow = .Cells(Rows.Count, 1).End(xlUp).Row
    Set r3 = .Range(.Cells(2, 2), .Cells(lastrow, lcolumn))
End With

With w3.Sheets("Sheet1")
    lcolumnplan = .Cells(1, Columns.Count).End(xlToLeft).Column
    lastrowplan = .Cells(Rows.Count, 1).End(xlUp).Row
    Set r4 = .Range(.Cells(1, 1), .Cells(lastrowplan, lcolumnplan))
End With
[/vba]

Автор - nilem
Дата добавления - 26.03.2017 в 11:03
Hugo Дата: Воскресенье, 26.03.2017, 16:42 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3254
Репутация: 707 ±
Замечаний: 0% ±

2019
Всюду перед cells указывайте лист чьё это.
И в общем случае и перед rows/columns.count тоже, т.к. если вдруг этот код будет выполнен при активном файле xls - может быть брак или ошибка.


excel@nxt.ru
webmoney: E265281470651 Z422237915069


Сообщение отредактировал Hugo - Воскресенье, 26.03.2017, 17:08
 
Ответить
СообщениеВсюду перед cells указывайте лист чьё это.
И в общем случае и перед rows/columns.count тоже, т.к. если вдруг этот код будет выполнен при активном файле xls - может быть брак или ошибка.

Автор - Hugo
Дата добавления - 26.03.2017 в 16:42
Jekaterina Дата: Воскресенье, 26.03.2017, 17:07 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 60% ±

Excel 2007
наверное так:

спасибо, помогло
 
Ответить
Сообщение
наверное так:

спасибо, помогло

Автор - Jekaterina
Дата добавления - 26.03.2017 в 17:07
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Application-defined or object-defined error (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!