powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Неправильно работает Cells
13 сообщений из 13, страница 1 из 1
Неправильно работает Cells
    #35713352
Andreevna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Помогите разобраться, пожалуйста.

Вот код листа "Смета":
Код: plaintext
1.
2.
3.
4.
5.
6.
Private Sub Worksheet_Change(ByVal Target As Range)

    Sheets("Предлож").Range(Cells( 1 ,  1 ), Cells( 20 ,  1 )).Copy
    Sheets("Смета").Range("A1").PasteSpecial Paste:=xlPasteValues

End Sub

Почему не работает? Ошибка "Application-defined or object-defined error"
...
Рейтинг: 0 / 0
Неправильно работает Cells
    #35713384
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У вас происходит зацикливание.
Попробуйте так
Код: plaintext
1.
2.
3.
4.
5.
6.
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    Sheets("Предлож").Range("A1:A20").Copy
    Sheets("Смета").Range("A1").PasteSpecial Paste:=xlPasteValues
    Application.EnableEvents = True
End Sub
...
Рейтинг: 0 / 0
Неправильно работает Cells
    #35713410
Andreevna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
big-duke,

Дело в том, что мне нужно использовать Range именно с помощью Cells.
...
Рейтинг: 0 / 0
Неправильно работает Cells
    #35713474
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и используйте.
Код: plaintext
1.
2.
3.
4.
5.
6.
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False

    Sheets("Предлож").Range(Cells( 1 ,  1 ), Cells( 20 ,  1 )).Copy
    Sheets("Смета").Range("A1").PasteSpecial Paste:=xlPasteValues
Application.EnableEvents = true
End Sub

...
Рейтинг: 0 / 0
Неправильно работает Cells
    #35713494
Andreevna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это я, ессесно, так попробовала, но ошибка все равно возникает. Причем при первом изменении листа "Смета" событие происходит, а при последующих - нет. Прилагаю файл, чтоб легче было разобраться.
...
Рейтинг: 0 / 0
Неправильно работает Cells
    #35713508
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andreevna,

Cells работает правильно, неправильно написан код. В данном случае Range(...) принадлежит листу "Предлож", а составляющие их Cells(...) принадлежат исключительно листу, в модуле которого находится ваш код. Иными словами: вы прописали объект листа для Range(...), но не сделали этого для Cells(...). Попробуйте так:

Код: plaintext
1.
2.
3.
4.
5.
Private Sub Worksheet_Change(ByVal Target As Range)
    With Sheets("Предлож")
        .Range(.Cells( 1 ,  1 ), .Cells( 20 ,  1 )).Copy
    End With
    Sheets("Смета").Range("A1").PasteSpecial Paste:=xlPasteValues
End Sub
...
Рейтинг: 0 / 0
Неправильно работает Cells
    #35713510
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, во второй части объект листа как раз прописывать нет необходимости, т.к. Sheets("Смета") и есть лист, в модуле которого находится ваш код и значит присваевается объекту Range(...) по умолчанию:

Код: plaintext
1.
2.
3.
4.
5.
Private Sub Worksheet_Change(ByVal Target As Range)
    With Sheets("Предлож")
        .Range(.Cells( 1 ,  1 ), .Cells( 20 ,  1 )).Copy
    End With
    Range("A1").PasteSpecial Paste:=xlPasteValues
End Sub
...
Рейтинг: 0 / 0
Неправильно работает Cells
    #35713622
Andreevna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KL (XL), big-duke

СПАСИБО ВАМ БОЛЬШОЕ! Сработало! Цикл, правда, все равно возникает, но от него можно избавиться с помощью совета от big-duke. Кстати, не поясните, что такое Application.EnableEvents?
...
Рейтинг: 0 / 0
Неправильно работает Cells
    #35713639
Andreevna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Про свойство EnableEvents узнала. Теперь, несмотря на
Код: plaintext
1.
Application.EnableEvents = True
в конце кода, событие на этом листе работает только один первый раз. Что делать?
...
Рейтинг: 0 / 0
Неправильно работает Cells
    #35713648
Andreevna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Событие работает один раз, т.к. код еще в процессе отладки и до конца не исполняется. Вот и получается, что события не успевают включиться.
А теперь у меня вот такая беда: выскакивает ошибка "Метод PasteSpecial из класса Range завершен неверно". Код такой
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
    y = Sheets("Предлож").Range("O7:IN7").Find(what:=Sheets("Смета").Range("L9")).Column +  1 
    
    Sheets("Предлож").Range("b35").AutoFilter Field:= 3 
    Sheets("Предлож").Range(Sheets("Предлож").Cells( 35 , y), Sheets("Предлож").Cells( 45 , y)).Copy
    Sheets("Предлож").Range("b35").AutoFilter Field:= 3 , Criteria1:="<>"
    
    Sheets("Смета").Range("G22").PasteSpecial Paste:=xlPasteValues

Где ошибка?
...
Рейтинг: 0 / 0
Неправильно работает Cells
    #35713770
nporaMep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
    dim y as range, dim col as integer
y = Sheets("Предлож").Range("O7:IN7").Find(what:=Sheets("Смета").Range("L9").Value)
    col = y.column+ 1 
    Sheets("Предлож").Range("b35").AutoFilter Field:= 3 
    Sheets("Предлож").Range(Sheets("Предлож").Cells( 35 , col), Sheets("Предлож").Cells( 45 , col)).Copy
    Sheets("Предлож").Range("b35").AutoFilter Field:= 3 , Criteria1:="<>"
    
    Sheets("Смета").Range("G22").PasteSpecial Paste:=xlPasteValues

Разобрался только с первыми 3-мя строчками, в код дальше не вникал и не особо задумывался чего он должен делать.
...
Рейтинг: 0 / 0
Неправильно работает Cells
    #35714004
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreevnaГде ошибка?
На листе. Надо смотреть, что там.
...
Рейтинг: 0 / 0
Неправильно работает Cells
    #35714547
Andreevna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Наверное дело в том, что после метода Copy должен сразу действовать метод Paste, а у меня перед Paste.
Код: plaintext
1.
Sheets("Предлож").Range("b35").AutoFilter Field:= 3 , Criteria1:="<>"
Так работает. Ну все. Спасибо всем за содействие!
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Неправильно работает Cells
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]