Требуется объект при копировании с другого листа - PullRequest
0 голосов
/ 07 ноября 2018

Я пытаюсь скопировать диапазон из листа, а затем перенести + вставить его на другой лист в той же книге, но по какой-то причине я получаю

объект требуется ошибка

в начальной строке .Copy. Может ли кто-нибудь объяснить это мне?

Sub Clean()
    Dim tRow As Double
    Dim bRow As Double
    Dim PasteRange As Double

    tRow = 5

    With ThisWorkbook.Worksheets("Canadian").Activate
        bRow = Cells(Rows.Count, "A").End(xlUp).row
        Worksheets("Canadian").Range(.Cells(tRow, "A"), .Cells(bRow, "A")).Copy
        PasteRange = (bRow - tRow)
    End With

    With ThisWorkbook.Worksheets("SectorSort").Activate
        .Range(.Cells(7, "D"), .Cells(7, PasteRange + 4)).PasteSpecial (xlPasteValues), Transpose:=True    
    End With
End Sub

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

изменение

With ThisWorkbook.Worksheets("Canadian").Activate

в

With ThisWorkbook.Worksheets("Canadian")

То же самое для следующего С (относительно "SectorSort")

0 голосов
/ 07 ноября 2018

Необходима пара изменений:

Sub Clean()

    Dim tRow As Long: tRow = 5
    Dim bRow As Long

    With ThisWorkbook.Worksheets("Canadian")
        bRow = .Cells(.Rows.Count, "A").End(xlUp).row
        .Range(.Cells(tRow, "A"), .Cells(bRow, "A")).Copy
    End With

    With ThisWorkbook.Worksheets("SectorSort")
        .Range("D7").PasteSpecial Paste:=xlPasteValues, Transpose:=True
    End With


End Sub

Необходимо удалить .Activate

Добавьте . перед Range и Cells, потому что вы находитесь в выражении With

А также вы можете просто указать одну ячейку при вставке

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