Я пытаюсь определить любые дубликаты в столбце, который является переменным диапазоном. Я нашел этот код:
Public Sub assignSeq()
targetRng = "A2:A14" 'Define the Range you want to assign number
For Each Rng In Range(targetRng)
Rng.Offset(0, 1).Value =
Application.WorksheetFunction.CountIf(Range(Split(targetRng, ":")(0) & ":" & Rng.Address), Rng.Value)
Next
End Sub
Я попытался изменить его, надеясь, что смогу использовать его для столбца, который будет иметь переменный диапазон (я буду использовать этот код вместе с другим кодом во многих книгах, поэтому не могу иметь его с заданным диапазоном т.е. E2: E15).
Sub assignSeq()
Dim lastRow As Long
Dim targetRng As Range
Dim rng As Range
'Column E won't be the same length every file that this macro is ran in. Column B is used to tell how long column E is.
lastRow = Cells(Rows.Count, "B").End(xlUp).Row
'Define the Range you want to assign number
Set targetRng = Range("E2:E5" & lastRow)
Set rng = Range("E2:E5" & lastRow)
For Each rng In Range("E2:E5" & lastRow)
rng.Offset(0, 1).Value =
Application.WorksheetFunction.CountIf(Range(Split(targetRng, ":")(0) & ":" & rng.Address), rng.Value)
Next
End Sub
Когда я запускаю код, я получаю сообщение об ошибке «13»: несоответствие типов.
Ниже, Столбец F - это то, что я хочу, чтобы этот код выполнял до самого столбца независимо от его длины.
Столбец G написан в отдельном коде, который я написал и работает, поэтому я не обязательно ищу помощь в этом, а скорее хочу показать, чего я в конечном итоге пытаюсь достичь.
Column E Column F Column G
PermAssetNumber Count PermAssetNumber w/Count
B02061 1 B02061
B02061 2 B02061_2
B02079 1 B02079
B02081 1 B02081
B02081 2 B02081_2
B02063 1 B02063
B02070 1 B02070
B02062 1 B02062
B02081 3 B02081_3
B02086 1 B02086
B02087 1 B02087
B02088 1 B02088
B02089 1 B02089
B02090 1 B02090
B02091 1 B02091
B02065 1 B02065
B02082 1 B02082
B02083 1 B02083
B02048 1 B02048
B02081 4 B02081_4