Короче говоря, у меня есть пользователь, который вводит данные, проходит множество чисток, проверяет макросы, а затем представляет отфильтрованные данные, содержащие ошибки с данными.Затем пользователь либо исправляет ошибки с помощью информации, либо очищает содержимое ячеек с ошибками (что четко указано для них).Моя проблема в том, что, когда они очищают содержимое ячеек, у меня все еще есть ошибки, которые возвращаются при запуске макроса повторной проверки (проблемы с пробелами в строке).Вот мой код, я не могу получить истинное условное выражение true независимо от того, что я делаю
Dim lastrow As Long
Dim x As Long
Dim cl As Range, rnger As Range
lastrow = Sheets("losses").Cells(Rows.count, "AM").End(xlUp).row
Set rnger = Range("AN3:AN" & lastrow)
For Each cl In rnger.SpecialCells(xlCellTypeVisible)
x = cl.row
Range("AA" & cl.row, "AN" & cl.row).Interior.Color = xlNone
Range("AK" & cl.row, "AN" & cl.row).ClearContents
If IsEmpty(Range("AA" & x, "AN" & x)) = True Then
Range("AK" & cl.row, "AN" & cl.row).ClearContents
Else
Sheets("losses").Range("AK" & cl.row).Formula = "=IFERROR(VLOOKUP($AB" & cl.row & ",References!$C$1:$D$41,2,FALSE),0)"
Sheets("losses").Range("AL" & cl.row).Formula = "=IFERROR(VLOOKUP($AE" & cl.row & ",References!$I$1:$J$13,2,FALSE),0)"
Sheets("losses").Range("AM" & cl.row).Formula = "=IFERROR(VLOOKUP($AF" & cl.row & ",References!$F$1:$G$116,2,FALSE),0)"
End If
Next cl
Попробовал и этот метод, не повезло
Set rnger = Sheets ("потери "). Диапазон (" AN3: AN "и lastrow)
For Each cl In rnger.SpecialCells(xlCellTypeVisible)
'If IsEmpty(Range("AA" & x, "AN" & x)) = True Then
'Range("AK" & cl.row, "AN" & cl.row).ClearContents
'Else
Sheets("losses").Range("AK" & cl.row).Formula = "=if(countblank(AA" & cl.row & ":AJ" & cl.row & ")=10," & vbNullString & ",(IFERROR(VLOOKUP($AB" & cl.row & ",References!$C$1:$D$41,2,FALSE),0)))"
Sheets("losses").Range("AL" & cl.row).Formula = "=if(isBlank(AND(AA" & cl.row & ",AB" & cl.row & ",AC" & cl.row & ",AD" & cl.row & ",AE" & cl.row & ",AF" & cl.row & ",AG" & cl.row & ",AH" & cl.row & ",AI" & cl.row & ",AJ" & cl.row & "))," & vbNullString & ",(IFERROR(VLOOKUP($AE" & cl.row & ",References!$I$1:$J$13,2,FALSE),0)))"
Sheets("losses").Range("AM" & cl.row).Formula = "=if(isBlank(AND(AA" & cl.row & ",AB" & cl.row & ",AC" & cl.row & ",AD" & cl.row & ",AE" & cl.row & ",AF" & cl.row & ",AG" & cl.row & ",AH" & cl.row & ",AI" & cl.row & ",AJ" & cl.row & "))," & vbNullString & ",(IFERROR(VLOOKUP($AF" & cl.row & ",References!$F$1:$G$116,2,FALSE),0)))"
'End If
Next cl