Здравствуйте, я хотел бы создать код, в котором я мог бы скопировать значения в определенном массиве и вставить только значения этого массива в столбец перед.
Копируемые массивы находятся в нескольких массивах и должны копироваться и вставляться в передний столбец, но только если в столбце A имеются числовые значения.
Вот так выглядят массивы со значениями (желтым) перед копией:
![Before](https://i.stack.imgur.com/XCJmY.png)
И вот результат, когда они вставляются в столбец впереди (перезаписывая остальные):
![After](https://i.stack.imgur.com/ceT7H.png)
Мой код не работает по многим причинам, и в основном я думаю, что есть проблема с моими циклами. Первый цикл должен указывать, что копирование будет иметь место только в строках, где значения в столбце A являются числовыми.
Sub Cop()
Application.ScreenUpdating = False
Set CopySheet = ThisWorkbook.Sheets("Sheet1")
Const ColStart As Integer = 4 'Table to start copying
Const NewColStart As Integer = 3 'Table to start pasting
Const ColEnd As Integer = 10 'Table ends for copying and pasting
Const ColumnNumeric As Integer = 1 'Column with numbers
Dim TargetRow As Long
Dim i As Long
Dim cell1 As Range
Dim cell2 As Range
TargetRow = 4 'Row where my table an column with numbers starts
With CopySheet
For Each cell1 In Range(.Cells(TargetRow, ColumnNumeric), .Cells(.Rows.Count, ColumnNumeric))
If IsNumeric(cell1) = True Then
'Numeric value found.
For Each cell2 In Range(.Cells(TargetRow,ColStart),.Cells(.Rows.Count, ColEnd))
cell2.Copy
.Range(.Cells(TargetRow, NewColStart), .Cells(.Rows.Count, ColEnd)).PasteSpecial (xlPasteValuesAndNumberFormats)
Application.CutCopyMode = False
Next cell2
TargetRow = TargetRow + 1
Else
Exit Sub
End If
Next cell1
TargetRow = TargetRow + 1
End With
Кто-нибудь может помочь? Я пробовал разные циклы, но я не уверен, как их закончить.