скопировать значения ячеек - PullRequest
0 голосов
/ 04 марта 2020

Мои данные выглядят как

enter image description here

Sub CopyCols()
    Dim lngRow As Long, lngRow As Long

    lngRow = 1

    With ActiveSheet
            '.Cells(1, "E").Resize(.UsedRange.Rows.Count, 3).Copy .Cells(1, "A")
            .Cells(lngRow, "A").Value = .Cells(lngRow, "E").Value
            .Cells(lngRow, "B").Value = .Cells(lngRow, "F").Value
            .Cells(lngRow, "C").Value = .Cells(lngRow, "G").Value
            lngRow = lngRow + 1
        Next lngRow
    End With 'ActiveSheet
End Sub

Я пытаюсь скопировать E1:G16 в A1:C16, но это не работает? Может кто-нибудь может помочь с этим?

1 Ответ

3 голосов
/ 04 марта 2020

Ваш код содержит ошибку. Вы не правильно зацикливаетесь. На самом деле я не вижу oop просто Next без For

Ваш код можно записать как

Dim ws As Worksheet
Dim i As Long

'~~> Change this to the relevant sheet
Set ws = Sheet1

With ws
    For i = 1 To 16
        .Cells(i, "A").Value = .Cells(i, "E").Value
        .Cells(i, "B").Value = .Cells(i, "F").Value
        .Cells(i, "C").Value = .Cells(i, "G").Value
    Next i
End With

Однако в этом нет необходимости oop. Вы можете сделать это в одной строке кода

Dim ws As Worksheet

'~~> Change this to the relevant sheet
Set ws = Sheet1

With ws
    .Range("A1:C16").Value = .Range("E1:G16").Value
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...