Cuando las TextBox.Text están vacías, Val(TextBox.Text) da error.
Tu ejemplo es fictive. Los valores 18, 2 y sistemas están probablemente en variables. Este es seguramente posible de verificar estas variables ante hacer el If ... Then ... . No puedo lo hacer sin código real.
Prueba este :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
If Val(edad.Text) <= 18 And Val(exp.Text) <= 2 And Val(profe.Text) = "sistemas" Then
MsgBox("seleccionado")
Else
MsgBox("No seleccionado")
End If
Catch
MsgBox("Errores de formato en TextBox")
End try
End Sub
...