Ошибка времени выполнения '424' Требуется объект: Excel VBA - PullRequest
0 голосов
/ 26 сентября 2018

Я очень плохо знаком с кодированием и пытаюсь скопировать данные из одного рабочего листа в другой в определенных строках.

Sub copycolumns()
    Dim lastrow As Long, erow As Long
    lastrow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row '*/error shows here/*
    For i = 2 To lastrow
        Sheet1.Cells(i, 1).Copy
        erow = Sheet2.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
        Sheet1.Paste Destination:=Worksheets("Sheet2").Cells(erow, 1)
        Sheet1.Cells(i, 3).Copy
        Sheet1.Paste Destination:=Worksheets("Sheet2").Cells(erow, 2)
        Sheet1.Cells(i, 6).Copy
        Sheet1.Paste Destination:=Worksheets("Sheet2").Cells(erow, 3)
    Next i
    Application.CutCopyMode = False
    Sheet2.Columns().AutoFit
    Range("A1").Select
End Sub

Что мне здесь не хватает?

1 Ответ

0 голосов
/ 26 сентября 2018

Ошибка 424 «Требуется объект» имеет только одну причину, чтобы всплыть в этой строке кода.

Option Explicit не указано, а Sheet1 нигде не объявлено.

Посмотрите на свойства вашего модуля "Лист1" (F4), затем запишите значение свойства (Name):

Properties of module 'Sheet1'

Свойство Name - это то, что вывидишь в Excel.Свойство (Name) нигде в Excel не отображается, и это значение определяет имя идентификатора глобальной области, который VBA объявляет автоматически для вас.

Вы не можете сделать Sheet1.Cells(...), если ни один рабочий лист не имеет(Name) значение свойства Sheet1.

Но в любом случае укажите Option Explicit.Причиной ошибки 424 является то, что Sheet1 является необъявленным, во время выполнения это неявное Variant со значением по умолчанию Empty, которое не является объектом, поэтому вызов члена является недопустимым - толькообъект может когда-либо иметь элемент Cells.

Protip: дать свойству (Name) осмысленное имя, например, SummarySheet.Тогда вы можете сделать SummarySheet.Cells(...).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...