0
여러 열 데이터가 포함 된 8 개의 시트가 있습니다.이 7 개의 시트와 시트 8이 필요하며 시트 8의 ID가 시트 7에 있어야하며 나머지 7 개의 시트는 모두 삭제되어야합니다.Vlookup 참조를 사용하는 다중 시트
코드는 내가 가지고있는 것보다 아래에 있지만 proerly로는 여전히 작동하지 않습니다. 일부 ID는 # N/A 데이터와 함께 표시됩니다.
Sub delete()
Dim arr(), msg As String
Dim c As Range
Dim ws_lrow, ws8_lrow, i As Integer
Dim ws As Worksheet
ws8_lrow = Sheets("Sheet8").Cells(Rows.Count, 1).End(xlUp).Row
ReDim arr(ws8_lrow)
For i = 2 To ws8_lrow
arr(i - 2) = Sheets("Sheet8").Cells(i, 1).Value
Next i
For Each ws In ActiveWorkbook.Sheets
ws_lrow = ws.Cells(Rows.Count, 2).End(xlUp).Row
For Each c In ws.Range("B2:B" & ws_lrow)
If IsInArray(c, arr()) = 0 Then
msg = msg & "User '" & c & "' from: " & ws.Name & vbCrLf
c.EntireRow.delete xlShiftUp
End If
Next c
Next ws
MsgBox "The following users have been deleted:" & vbCrLf & msg
End Sub
Private Function IsInArray(valToBeFound As Variant, arr As Variant) As Boolean
Dim element As Variant
On Error GoTo IsInArrayError: 'array is empty
For Each element In arr
If element = valToBeFound Then
IsInArray = True
Exit Function
End If
Next element
Exit Function
IsInArrayError:
On Error GoTo 0
IsInArray = False
End Function