안녕하세요 아래 코드로 작업하고 있지만 워크 시트에서 한 번에 전체 열 (여러 셀)을 삭제하려고하면 오류가 표시됩니다. 코드는 if 문과 함께 잘 작동합니다. 모든 "M"을 삭제할 수 없습니다 & "I"문자를 시트에서 한 번에 삭제하십시오. 아래 코드입니다 :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')은 목적이 없습니다; 코드에서 Target 셀의 값이 M이면 AB/AC를 "NA"로 바꾸고 그렇지 않으면 ""로 바꿉니다. 'Else'의 결과가 똑같다면'ElseIf'는 필요 없습니다. – Dave