Привет, Я работал с приведенным ниже кодом, но он показывает ошибку, когда я пытаюсь удалить весь столбец (Несколько ячеек) сразу с рабочего листа. код отлично работает с утверждением if, я просто не могу удалить все «M» & «I» символы сразу с листа. Ниже приведен код:vba if statement error
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 18 Then
ThisRow = Target.Row
If Target.Value = "M" Then
Range("AB" & ThisRow) = "NA"
ElseIf Target.Value = "I" Then
Range("AB" & ThisRow) = ""
Else
Range("AB" & ThisRow) = ""
End If
If Target.Value = "M" Then
Range("AC" & ThisRow) = "NA"
ElseIf Target.Value = "I" Then
Range("AC" & ThisRow) = ""
Else
Range("AC" & ThisRow) = ""
End If
End If
End Sub
Обновленный код
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Integer, lastRow As Integer
If (Not Target.Column = 24) Then Exit Sub
If (Target.Columns.Count > 1) Then Exit Sub
lastRow = Cells.SpecialCells(xlCellTypeLastCell).Row
Application.ScreenUpdating = False
For r = Target.Row To Target.Row + Target.Rows.Count - 1
Range("Z" & r & ",AA" & r & ",AB" & r & ",AC" & r) = IIf(Cells(r, 24) = "Yes", "NA", "")
Range("Y" & r & ",Z" & r & ",AA" & r & ",AB" & r & ",AC" & r & ",AD" & r) = IIf(Cells(r, 24) = "No", "NA", "")
If (r = lastRow) Then Exit Sub
Next r
Application.ScreenUpdating = True
End Sub
Что такое ошибка брошена и какая линия вызывает это? – RGA
Эта строка ('ElseIf Target.Value =" I "Then') не имеет никакой цели; Ваш код говорит, что если значение ячейки Target равно M, замените AB/AC на «NA», иначе замените его на «». Вам не нужно, чтобы 'ElseIf', если вывод из' Else' - это то же самое. – Dave