Вставить диапазон, возвращающий синтаксическую ошибку для диапазона переменных - PullRequest
0 голосов
/ 24 октября 2018

Я пытаюсь перебрать ряд столбцов со списком дат, которые различаются по размеру и имеют многочисленные дубликаты.Я хочу скопировать значения столбцов из TSX-DeltaFind и вставить их в TSX-CleanDate под соответствующим «Тикером» и удалить все дубликаты после завершения.

A) Почему я получаю синтаксическую ошибку при вставкестрока?
B) Как я могу удалить все дубликаты после вставки?

Sub CleanDate()
    Dim BottomRow As Long
    Dim BottomRow2 As Long
    Dim TopRow As Long
    Dim col As Integer
    Dim Ticker As String
    Dim RngY As Range
    Dim originalRng As Integer

    With ThisWorkbook.Worksheets("TSX-DeltaFind")
        col = 4
        TopRow = 6

        For col = 4 To 3 + (2 * 26) Step 2
            Ticker = .Cells(TopRow - 1, col - 2).Value
            BottomRow = .Cells(.Rows.Count, col).End(xlUp).row
            originalRng = BottomRow - TopRow

            Worksheets("TSX-DeltaFind").Range(.Cells(TopRow, col), .Cells(BottomRow, col)).Copy
            Worksheets("TSX-CleanDate").Activate

            With ThisWorkbook.Worksheets("TSX-CleanDate")
                Set RngY = Worksheets("TSX-CleanDate").Range("A3:XDF3").Find(Ticker, lookat:=xlPart)
                BottomRow2 = .Cells(.Rows.Count, RngY.Column).End(xlUp).row

                Worksheets("TSX-CleanDate").Range(BottomRow2 + 1, RngY.Column + 2:originalRng + 4,RngY.Column + 2 ).PasteValues
            End With

            Worksheets("TSX-DeltaFind").Activate
        Next
    End With
End Sub

1 Ответ

0 голосов
/ 24 октября 2018

Для A) Ваш аргумент диапазона должен быть чем-то вроде range ("a2: b2"), а не range (1,2: 2,2)

Вы можете использовать ячейки, чтобы ссылаться на них в путиты пытаешьсяНапример,

Worksheets("TSX-CleanDate").Range(BottomRow2 + 1, RngY.Column + 2:originalRng + 4,RngY.Column + 2 ).PasteValues

Может быть

Worksheets("TSX-CleanDate").Range(Cells(BottomRow2 + 1, RngY.Column + 2),Cells(originalRng + 4,RngY.Column + 2)).PasteSpecial (xlPasteValues)

B) Для дубликатов используйте range.removeduplicates

...