스프레드 시트를 가정하면 나는 2 개의 다른 열
열 B는 첫 6을 가지고에 관리자와 회원 ID를 분리하는 코드를 작성이
처럼 보인다 숫자 - 관리자 ID라고 말한 것 같습니다.
열 C는 전자 4 자리 팀원 ID
그래서, 첫 번째 사진과 같이 다음 코드
Option Explicit
Sub ManagersAndTheirTeams()
Application.ScreenUpdating = False
ReDim arr(Range("A" & Rows.Count).End(xlUp).Row - 1) As String
Dim r As Range
Dim i As Long, j As Long, c As Long
For i = 1 To Range("A" & Rows.Count).End(xlUp).Row
Set r = Range("A" & i)
arr(i - 1) = r
Set r = Nothing
Next i
RemoveDuplicate arr
Columns("B:C").NumberFormat = "@"
For i = LBound(arr) To UBound(arr)
For j = 1 To Range("A" & Rows.Count).End(xlUp).Row
Set r = Range("A" & j)
If StrComp(Left(arr(i), 6), Left(r, 6), vbTextCompare) = 0 Then
Range("B" & j) = Left(arr(i), 6)
Range("C" & j) = Right(r, 4)
End If
Set r = Nothing
Next j
Next i
For i = LBound(arr) To UBound(arr)
For j = 1 To Range("B" & Rows.Count).End(xlUp).Row
Set r = Range("B" & j)
If StrComp(Left(arr(i), 6), r, vbTextCompare) = 0 Then
c = c + 1
If c > 1 Then
r.ClearContents
End If
End If
Set r = Nothing
Next j
c = 0
Next i
Application.ScreenUpdating = True
End Sub
Sub RemoveDuplicate(ByRef StringArray() As String)
Dim lowBound$, UpBound&, A&, B&, cur&, tempArray() As String
If (Not StringArray) = True Then Exit Sub
lowBound = LBound(StringArray): UpBound = UBound(StringArray)
ReDim tempArray(lowBound To UpBound)
cur = lowBound: tempArray(cur) = StringArray(lowBound)
For A = lowBound + 1 To UpBound
For B = lowBound To cur
If LenB(tempArray(B)) = LenB(StringArray(A)) Then
If InStrB(1, StringArray(A), tempArray(B), vbBinaryCompare) = 1 Then Exit For
End If
Next B
If B > cur Then cur = B: tempArray(cur) = StringArray(A)
Next A
ReDim Preserve tempArray(lowBound To cur): StringArray = tempArray
End Sub
VBA's'INSTR' 숫자와 함께 작동 하는가를 실행하는 스프레드 시트를 설정합니다. Excel에서 적절한 경우 'MID', 'SEARCH'등은 숫자로 작업합니다. –