У меня есть частный саб, который я вызываю в конце моего кода. Его целью является удаление любых лиц, чьи SSN соответствуют работающему массиву. У меня есть два листа, которые он просматривает, и второй работает отлично, однако первый, похоже, не работает.
Я попытался отладить его, и он находит правильные номера того человека, которым я являюськасается массивов, однако If statement
, похоже, не влияет на это. Вот то, что я имею, любая помощь будет оценена. Опять же, проблема в том, что первый If statement
не работает должным образом. Я очевидно изменил номера SSN по соображениям безопасности. Еще раз спасибо!
Private Sub Delete_Deceased()
Dim tw As Workbook: Set tw = ThisWorkbook
Dim visa As Worksheet: Set visa = tw.Worksheets("Visa")
Dim nav As Worksheet: Set nav = tw.Worksheets("Navigator")
Dim rwCnt_visa As Long: rwCnt_visa = visa.Cells(Rows.Count, 1).End(xlUp).Row
Dim rwCnt_nav As Long: rwCnt_nav = nav.Cells(Rows.Count, 1).End(xlUp).Row
Dim x As Long
Dim y As Long
Dim Deceased() As Variant
Deceased = Array(123456789, 234567890, 345678901, 456789012, 567890123, 678901234, _
789012345, 890123456, 901234567)
Dim visa_Inx As Long
Dim nav_Inx As Long
visa.Columns("P:P").NumberFormat = "@" 'Format the VISA SSN column as text
For x = rwCnt_visa To 4 Step -1
For visa_Inx = LBound(Deceased) To UBound(Deceased)
If visa.Cells(x, 16).Value2 = Deceased(visa_Inx) Then
Debug.Print "Row: " & x
'visa.Rows(x).Delete shift:=xlShiftUp
End If
Next visa_Inx
Next x
For y = rwCnt_nav To 2 Step -1
For nav_Inx = LBound(Deceased) To UBound(Deceased)
If nav.Cells(y, 5).Value2 = Deceased(nav_Inx) Then
nav.Rows(y).Delete shift:=xlShiftUp
End If
Next nav_Inx
Next y
End Sub