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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2011, 14:42   #1
SweetN
 
Регистрация: 20.04.2011
Сообщений: 4
Вопрос Ошибка создания объекта

Добрый день! Помогите разобраться в ошибке. Мне надо после создания таблицы под неё скопировать с соседнего листа этой же книги 4 определённые строчки. Вод код процедуры:
Код:
Private Sub RasZnach() ' Копируем 4 строки 
    Dim iRow As Integer, formula As Range, ra3 As Range    
    Set formula = wb2.Worksheets("Формулы").Range("a1:af4") ' Копируемые строки
    Set iRow = wb2.Worksheets("Лист3").UsedRange.Row + wb2.UsedRange.Rows.Count - 1 ' Поиск последней заполненной строки
    Set ra3 = wb2.Workshets("Лист3").Cell(iRow + 1, 1)
     fomula.Copy ra3
End Sub
wb2 - определена выше и в других процедурах работает нормально.
При компиляции выдаёт ошибку: object required (для iRow). Что не так?
SweetN вне форума Ответить с цитированием
Старый 29.04.2011, 14:53   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Буквы экономите?
Код:
iRow = wb2.Worksheets("Лист3").UsedRange.Row + wb2.UsedRange.Rows.Count - 1 ' Поиск последней заполненной строки
    Set ra3 = wb2.Worksheets("Лист3").Cells(iRow + 1, 1)
     formula.Copy ra3
EducatedFool вне форума Ответить с цитированием
Старый 29.04.2011, 15:10   #3
SweetN
 
Регистрация: 20.04.2011
Сообщений: 4
По умолчанию

Да, извиняюсь. Я уже исправила.
Но дело, к сожалению, не в этом. Не работает. И даже если написать iRow = 1, то та же ошибка.
SweetN вне форума Ответить с цитированием
Старый 29.04.2011, 16:01   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Вы убрали Set перед iRow ?

Должно получиться так:

Код:
Private Sub RasZnach()    ' Копируем 4 строки
    Dim iRow As Integer, formula As Range, ra3 As Range
    Set formula = wb2.Worksheets("Формулы").Range("a1:af4")    ' Копируемые строки
    iRow = wb2.Worksheets("Лист3").UsedRange.Row + wb2.UsedRange.Rows.Count - 1    ' Поиск последней заполненной строки
    Set ra3 = wb2.Worksheets("Лист3").Cells(iRow + 1, 1)
    formula.Copy ra3
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 29.04.2011, 16:14   #5
SweetN
 
Регистрация: 20.04.2011
Сообщений: 4
По умолчанию

Убрала. Теперь ту же самую ошибку выдаёт для переменной formula.
Пробовала также и заменить wb2 на имя книги. И вообще сделать как отдельный макрос. Ничего не помогло.
SweetN вне форума Ответить с цитированием
Старый 03.05.2011, 11:08   #6
SweetN
 
Регистрация: 20.04.2011
Сообщений: 4
По умолчанию

Странно, но дело было всё-таки в wb2. Не понятно, почему её не видно в этой процедуре. Но сейчас главное, что работает, а дальше разберусь =)
SweetN вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пример создания класса и объекта в этом классе Valera Помощь студентам 0 19.04.2011 12:50
CLR. Ошибка C3918. Как вызвать из объекта обработчик, переданный родителю объекта от деда? Stilet Общие вопросы .NET 0 15.01.2011 17:49
Динамическое добавление объекта, ошибка. PVD Общие вопросы Delphi 4 24.04.2010 22:41
Инициализация массива, являющегося полем структуры во время создания объекта Radser Общие вопросы C/C++ 10 18.01.2010 20:28