#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