Попробуйте это:
Sub copyCell()
Dim idColumn As String
Dim startRow, lastRow, row As Integer
Dim sht1, sht2 As Worksheet
Set sht1 = Worksheets("Sheet1") 'Setting sheet1
Set sht2 = Worksheets("Sheet2") 'Setting sheet1
idColumn = "C" 'Setting column id value column
startRow = 1 'Setting the start row from sheet 1
'Getting the last used row from sheet 1
lastRow = sht1.Cells(sht1.Rows.Count, rowColumn).End(xlUp).row
For row = startRow To lastRow Step 1
'Check Id Value is empty or not
If sht1.Range(idColumn & row) <> "" Then
'If not empty, set value
sht2.Range(idColumn & row) = sht1.Range(idColumn & row)
Else
'If empty, set value from previous row of sheet 2
sht2.Range(idColumn & row) = sht2.Range(idColumn & (row - 1))
End If
Next row
End Sub
Я уже проверил мой код с вашими данными выборки. Это хорошо работает для меня.
Я считаю, что это будет полезно для вас.
В вашем рассказе указано, что идентификаторы начинаются с C3, но ваше изображение показывает их, начиная с строки Row1. Учитывая это очевидное несоответствие, невозможно определить, где на Sheet2 вы хотите разместить идентификаторы. – Jeeped
..хорошо, что это была честная ошибка, которая начинается в строке 1, многие из них указывают на это. Я хочу, чтобы идентификатор был помещен в «sheet2» B2 ... – MasterBlaster