嗨我正在处理下面的代码,但它显示错误,当我尝试从工作表中一次删除整个列(多个单元格)。该代码与if语句正常工作,只是我不能从表单中一次删除所有“M”&“我”字符。 下面是代码:vba if语句错误
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
末次
什么是抛出的错误,哪条线导致它? – RGA
这条线('ElseIf Target.Value =“I”Then')没有目的;你的代码表明,如果目标单元格的值是M,则将AB/AC替换为“NA”,否则将其替换为“”。如果Else的输出是同一个东西,那么你不需要'ElseIf'。 – Dave