Здравствуйте снова, народ. В приложенном файле мне нужно вставить ячейки столбца U, в которых видны цифры (остальные содержат пустую строку - спецвставка результата формулы) в столбец N, начиная с 448 строки. Сам я написал код: [vba]
Код
Sub Копипаст() Dim Cell As Range, r As Range Set r = Range("U4" & ":" & "U104") With ActiveWorkbook For Each Cell In r If Not Intersect(Cell, r) Is Nothing And Cell.Value <> "" Then Cell.Copy For i = 448 To 548 With Range("N" & i) ActiveSheet.Paste i = i + 1 End With Next i End If Next Cell End With End Sub
[/vba] Но он: 1) перебирает все значения, скопированные из столбца U, в одной ячейке и оставляет в ней последнее значение. 2) Несмотря на то, что в макросе указано With Range("N" & i), скопированные значения вставляются в выделенную на момент запуска кода ячейку. Помогите исправить код, пожалуйста.
Здравствуйте снова, народ. В приложенном файле мне нужно вставить ячейки столбца U, в которых видны цифры (остальные содержат пустую строку - спецвставка результата формулы) в столбец N, начиная с 448 строки. Сам я написал код: [vba]
Код
Sub Копипаст() Dim Cell As Range, r As Range Set r = Range("U4" & ":" & "U104") With ActiveWorkbook For Each Cell In r If Not Intersect(Cell, r) Is Nothing And Cell.Value <> "" Then Cell.Copy For i = 448 To 548 With Range("N" & i) ActiveSheet.Paste i = i + 1 End With Next i End If Next Cell End With End Sub
[/vba] Но он: 1) перебирает все значения, скопированные из столбца U, в одной ячейке и оставляет в ней последнее значение. 2) Несмотря на то, что в макросе указано With Range("N" & i), скопированные значения вставляются в выделенную на момент запуска кода ячейку. Помогите исправить код, пожалуйста.Фомулист
Sub Копипаст_1() Dim iLR As Long Dim Cell As Range iLR = 448 Columns("N").ClearContents For Each Cell In Range("U4:U104") If Cell <> "" Then Cell.Copy Range("N" & iLR).PasteSpecial xlPasteValues iLR = iLR + 1 End If Next End Sub
[/vba]
[vba]
Код
Sub Копипаст_1() Dim iLR As Long Dim Cell As Range iLR = 448 Columns("N").ClearContents For Each Cell In Range("U4:U104") If Cell <> "" Then Cell.Copy Range("N" & iLR).PasteSpecial xlPasteValues iLR = iLR + 1 End If Next End Sub