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

Вход

Регистрация

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

 

= Мир MS Excel/Не копируются ячейки на другой лист (runtime-error) - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Не копируются ячейки на другой лист (runtime-error) (Макросы/Sub)
Не копируются ячейки на другой лист (runtime-error)
PATRI0T Дата: Понедельник, 07.12.2015, 20:39 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 57
Репутация: 4 ±
Замечаний: 0% ±

Excel 2013
Подскажите пожалуйста. Пытаюсь скопировать диапазон в ячейку на другом листе.
Но вываливается в ошибку
Run-time error '1004'. Application-defined or object-defined error

http://s020.radikal.ru/i712/1512/0e/be3e93ce9642.png

[vba]
Код
FirstCellcolumn = 15
i = 0
With Worksheets("Элементы Фасада")
        For Each tCell In .Range("ТЭлементыФасада[ID заказа]")
            If tCell.Value = MyID Then
                .Range(Cells(tCell.Row, 3), Cells(tCell.Row, 7)).Copy Destination:= _
                     Worksheets("Новый заказ").Range(Cells(FirstCellcolumn + i, 2))
                i = i + 1
            End If
        Next tCell
End With
[/vba]

Мне думается, что ошибка в этой части строки: Worksheets("Новый заказ").Range(Cells(FirstCellcolumn + i, 2))
Потому что на этом же листе, но допустим, в диапазон Range("A333") все копируется прекрасно.
Подскажите, где неправ?


Сообщение отредактировал PATRI0T - Понедельник, 07.12.2015, 20:40
 
Ответить
СообщениеПодскажите пожалуйста. Пытаюсь скопировать диапазон в ячейку на другом листе.
Но вываливается в ошибку
Run-time error '1004'. Application-defined or object-defined error

http://s020.radikal.ru/i712/1512/0e/be3e93ce9642.png

[vba]
Код
FirstCellcolumn = 15
i = 0
With Worksheets("Элементы Фасада")
        For Each tCell In .Range("ТЭлементыФасада[ID заказа]")
            If tCell.Value = MyID Then
                .Range(Cells(tCell.Row, 3), Cells(tCell.Row, 7)).Copy Destination:= _
                     Worksheets("Новый заказ").Range(Cells(FirstCellcolumn + i, 2))
                i = i + 1
            End If
        Next tCell
End With
[/vba]

Мне думается, что ошибка в этой части строки: Worksheets("Новый заказ").Range(Cells(FirstCellcolumn + i, 2))
Потому что на этом же листе, но допустим, в диапазон Range("A333") все копируется прекрасно.
Подскажите, где неправ?

Автор - PATRI0T
Дата добавления - 07.12.2015 в 20:39
RAN Дата: Понедельник, 07.12.2015, 20:46 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеКак обратиться к диапазону из VBA

Автор - RAN
Дата добавления - 07.12.2015 в 20:46
_Boroda_ Дата: Понедельник, 07.12.2015, 20:59 | Сообщение № 3
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Ренжи у Вас с точками и именами листов, а Кэллсы Вы почему-то повесили в неизвестности (что равносильно активному листу, если у Вас макрос в обычном модуле). Вот они и обижаются.

Добавлено
Как раз про это в ссылке Андрея и написано (ближе к середине текста)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеРенжи у Вас с точками и именами листов, а Кэллсы Вы почему-то повесили в неизвестности (что равносильно активному листу, если у Вас макрос в обычном модуле). Вот они и обижаются.

Добавлено
Как раз про это в ссылке Андрея и написано (ближе к середине текста)

Автор - _Boroda_
Дата добавления - 07.12.2015 в 20:59
PATRI0T Дата: Вторник, 08.12.2015, 09:20 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 57
Репутация: 4 ±
Замечаний: 0% ±

Excel 2013
Да, спасибо. действительно точки забыл.
Но вот, что интересно. точки поставил, а оно все равно не работало. ругалось абсолютно также.
[vba]
Код
   .Range(.Cells(tCell.Row, 4), .Cells(tCell.Row, 7)).Copy Destination:= _
            Worksheets("Новый заказ").Range(Worksheets("Новый заказ").Cells(FirstCellcolumn + i, 2))
[/vba]

Ковырялся ковырялся и получилось.
В этой записи, во второй части убрал Range и стал напрямую обращаться к Cells и все заработало.

[vba]
Код
.Range(.Cells(tCell.Row, 3), .Cells(tCell.Row, 7)).Copy Destination:= _
             Worksheets("Новый заказ").Cells(FirstCellRow + i, 2)
[/vba]

Вдруг кому-то поможет.
Спасибо всем.


Сообщение отредактировал PATRI0T - Вторник, 08.12.2015, 09:33
 
Ответить
СообщениеДа, спасибо. действительно точки забыл.
Но вот, что интересно. точки поставил, а оно все равно не работало. ругалось абсолютно также.
[vba]
Код
   .Range(.Cells(tCell.Row, 4), .Cells(tCell.Row, 7)).Copy Destination:= _
            Worksheets("Новый заказ").Range(Worksheets("Новый заказ").Cells(FirstCellcolumn + i, 2))
[/vba]

Ковырялся ковырялся и получилось.
В этой записи, во второй части убрал Range и стал напрямую обращаться к Cells и все заработало.

[vba]
Код
.Range(.Cells(tCell.Row, 3), .Cells(tCell.Row, 7)).Copy Destination:= _
             Worksheets("Новый заказ").Cells(FirstCellRow + i, 2)
[/vba]

Вдруг кому-то поможет.
Спасибо всем.

Автор - PATRI0T
Дата добавления - 08.12.2015 в 09:20
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Не копируются ячейки на другой лист (runtime-error) (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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