Копировать содержимое ячейки из одного столбца в другой столбец на том же листе—макрос?

#vba #excel

#vba #excel

Вопрос:

У меня есть номера счетов в столбце E, и они нужны для репликации в столбец H для любой ячейки, содержащей значение.

Конечным результатом будет E1 = H1 и так далее, пока все ячейки столбца E не будут скопированы в coulmn H.

Заранее спасибо!

Комментарии:

1. Всем, кто проголосовал за закрытие: поскольку VBA занимается программированием, это вопрос, связанный с программированием.

Ответ №1:

 Option Explicit

Public Sub x()

    Call copy_acct_nums("E", "H")

End Sub

Private Sub copy_acct_nums(copy_from_col, copy_to_col)

    Application.ScreenUpdating = False
    Dim i As Long

    With ActiveWorkbook.ActiveSheet

        For i = 1 To .UsedRange.Rows.Count Step 1
            .Cells(i, copy_to_col).Value = .Cells(i, copy_from_col).Value
        Next i

    End With

    Application.ScreenUpdating = True

End Sub
  

Если у вас есть несколько листов, к которым вам нужно применить этот код, вы могли бы добавить аргумент sheet к подпрограмме копирования. Я оставляю это вам: D

Ответ №2:

Другой вариант:

 Sub copy()

  numrows = Cells.SpecialCells(xlLastCell).Row
  Range("E1:E" amp; numrows amp; "").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("H1")

End Sub
  

При необходимости столбцы также могли быть переданы в качестве переменных.

 Sub runCopy()

  Call copy("E", "H")

End Sub

Sub copy(col1, col2)

  numrows = Cells.SpecialCells(xlLastCell).Row
  Range("" amp; col1 amp; "1:" amp; col1 amp; "" amp; numrows amp; "").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("" amp; col2 amp; "1")

End Sub