Вставить диапазон значений в другой лист - PullRequest
0 голосов
/ 28 июня 2018

Я пытаюсь скопировать данные из моего «основного» листа, а затем вставить их в мой «CSV» лист. Тем не менее, я получаю ошибку во время выполнения "1004": метод PasteSpecial класса Range не удалось ", когда я пытаюсь это.

Пожалуйста, просмотрите мой код ниже. Это ошибка .Cells (1, 2) .PasteSpecial xlPasteValues. Спасибо.

    With main
        n = 1

        For Each c In .Range("C1:C200")
            If c.Value = "x" Then
                c1 = Cells(c.Row, Columns.Count).End(xlToLeft).Column
                If c1 > 2 Then c.Offset(0, 2).Resize(, c1 - 4).Copy

                With csv
                    If n = 1 Then
                        .Cells(1, 1) = "ID"
                        .Cells(1, 2).PasteSpecial xlPasteValues
                    Else
                        .Cells(n, 1) = n - 1
                        .Cells(n, 2).PasteSpecial xlPasteValues
                    End If
                End With

                n = n + 1
            End If
        Next c
    End With

1 Ответ

0 голосов
/ 28 июня 2018

Поместите копию и пасту в одно и то же состояние:

If c1 > 2 Then 
    c.Offset(0, 2).Resize(, c1 - 4).Copy
    With csv
        If n = 1 Then
            .Cells(1, 1) = "ID"
            .Cells(1, 2).PasteSpecial xlPasteValues
        Else
            .Cells(n, 1) = n - 1
            .Cells(n, 2).PasteSpecial xlPasteValues
        End If
    End With
End If

И изменить эту строку:

c1 = Cells(c.Row, Columns.Count).End(xlToLeft).Column

именно к этому (точки важны):

c1 = .Cells(c.Row, .Columns.Count).End(xlToLeft).Column

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