Копировать вставить с ошибкой транспонирования компиляции - PullRequest
0 голосов
/ 02 ноября 2018

Я знаю, что это может быть простое исправление, но я не могу его исправить. Может кто-нибудь, пожалуйста, объясните, почему я при первом прошедшем транспонировании все еще выдает много ошибок (включая синтаксис)

Ценю помощь.

Sub Clean()

Dim tRow As Long
Dim bRow As Long
Dim Range As Long

tRow = 8
bRow = Cells(Rows.Count, "C").End(xlUp).row

Worksheets("Canadian").Activate

        Worksheets("Canadian").Range("E251:E267").Copy

    Worksheets("SectorSort").Activate
    .Range(.Cells((bRow + 4), "C")), (.Cells((bRow + 4), "R")).PasteSpecial (xlPasteValues), Transpose:=True

 End With

With ThisWorkbook.Worksheets("SectorSort")


    Range = bRow - tRow + 1

    .Range(.Cells(tRow, "C"), .Cells(bRow, "C")).Copy
    .Range(.Cells(bRow + 3, "C"), .Cells((bRow + 3 + Range), "C")).PasteSpecial (xlPasteValues)

End With

1 Ответ

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

Fisrt у вас есть несколько диапазонов, которые не привязаны к родителю

bRow = Cells(Rows.Count, "C").End(xlUp).row

Поместите это внутрь с.

Тогда вы активируете листы, не делайте этого, просто обратитесь к ним.

Далее вы рассматриваете один из этих .Activate как With

Наконец, у вас есть () неправильно в вашей пасте.


Dim tRow As Long
Dim bRow As Long
Dim rng As Long

tRow = 8
Worksheets("Canadian").Range("E251:E267").Copy

With Worksheets("SectorSort")
    bRow = .Cells(Rows.Count, "C").End(xlUp).Row
    .Range(.Cells((bRow + 4), "C"), .Cells((bRow + 4), "R")).PasteSpecial (xlPasteValues), Transpose:=True
    rng = bRow - tRow + 1
    .Range(.Cells(tRow, "C"), .Cells(bRow, "C")).Copy
    .Range(.Cells(bRow + 3, "C"), .Cells((bRow + 3 + rng), "C")).PasteSpecial (xlPasteValues)
End With
...