Q: When I remove data, code will stuck I have excel sheet with dropdown list and when I choose anything from the list

macro will vlookup for requested value. But when I want to remove values from those cells, that I select them and press delete, it will show me "#N/A" and the excel is frozen, I cant do anything. Could you advise me, how can I avoid it, please?

Option Explicit

Private Sub Worksheet_Change()
    Dim Target As Range
    Dim selectedNa As Integer, selectedNum As Integer

    selectedNa = Target.Value
    If Target.Column = 10 Then
        selectedNum = Application.VLookup(selectedNa, ActiveSheet.Range("dropdown"), 2, False)
        If Not IsError(selectedNum) Then
            Target.Value = selectedNum
        Else: Exit Sub
        End If
    Else: Exit Sub
    End If
End Sub


A: Try the following:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

 Dim selectedNa As Long, selectedNum As Variant

 If Target.Column = 10 And Not IsEmpty(Target) Then  'selectedNa <> vbNullString Then '

    Application.EnableEvents = False

    On Error GoTo errhand

    selectedNa = Target.Value

    selectedNum = Application.VLookup(selectedNa, ActiveSheet.Range("dropdown"), 2, False)

     If Not IsError(selectedNum) Then

         Target.Value = selectedNum

     End If

     Application.EnableEvents = True

 End If

 Exit Sub

errhand:
If Err.Number <> 0 Then
    Application.EnableEvents = True
End If

End Sub


A: Change your posted code to
Option Explicit
Private Sub Worksheet_Change(ByVal target As Range)

Dim selectedNa As Integer, selectedNum As Integer

    On Error GoTo EH

    Application.EnableEvents = False

    selectedNa = target.Value

    If target.Column = 10 Then
        selectedNum = Application.VLookup(selectedNa, ActiveSheet.Range("dropdown"), 2, False)
        If Not IsError(selectedNum) Then
            target.Value = selectedNum
        End If
    End If

EH:
    Application.EnableEvents = True
    Debug.Print Err.Number, Err.Description
End Sub

The code HAS TO be put into the sheet module. 
Have a look at the immediate window after you have changed or deleted a value in your sheet.

A: It looks like this is what you want, based on the information provided:
Private Sub Worksheet_Change(ByVal Target As Range)

    Dim CheckCells As Range
    Dim ChangedCell As Range

    Set CheckCells = Intersect(Me.Columns(10), Target)

    Application.EnableEvents = False

    If Not CheckCells Is Nothing Then
        For Each ChangedCell In CheckCells.Cells
            If Len(ChangedCell.Value) > 0 And WorksheetFunction.CountIf(Me.Range("dropdown"), ChangedCell.Value) > 0 Then
                ChangedCell.Value = WorksheetFunction.VLookup(ChangedCell.Value, Me.Range("dropdown").Resize(, 2), 2, False)
            End If
        Next ChangedCell
    End If

    Application.EnableEvents = True

End Sub

