its actually not too hard to accomplish. though im not sure which part your having a issue with. in any case below is a example of how it could be done. the link goes to another post where i just explained about finding the closest enemy.
the basics here is you make an array of the enemies in range (i used a overlap here), then you compare their distance to the player via a loop. while doing this you also record the closest enemy as you go and on each iteration you compare the currently being tested enemy to the current closest. once the loop is done you will have the closest enemy at which time you rotate the character to face the enemy. i used a set rotation here but you could use a lerp or interp or another method to turn over time. i used a find look at rotation to get the needed rotation. then the final step is to shoot which i just used a custom event since it will depend on your particular setup.