ok ive had a look at your code and what i see is that the error is in this bit
if rightkey()
heroX=heroX+14
heroface=8
herostance=herostance+8
if herostance >14 then herostance=8
endif
you see when ever you press right, 8 is being added to herostance. so if herostance was 1 and you pressed right, herostance would become 8. if it was pressed again herostance would become 16 and therefore because thats greater then 14 it would then become 8 again, so herostance will always be 8 when your walking right. now im no expert but the way i would fix it would be to add another variable called 'herodir' as in hero direction. then you change the above code so that the line:
herostance=herostance+8
becomes
herostance=herostance-1
you could then use herodir to determine which way the hero is facing. if herodir does not equal what it was during the last do loop, then you add 8 or subtract 8 for herostance. so the finished code becomes...
sync on
sync rate 30
rem Load hero sprite facing LEFT (1-7)
load image "L-Stand.bmp",1
load image "L-Walk.bmp",2
load image "L-Walk2.bmp",3
load image "L-Walk3.bmp",4
load image "L-Walk4.bmp",5
load image "L-Walk5.bmp",6
load image "L-Walk6.bmp",7
rem Load hero sprite facing RIGHT (8-14)
load image "R-Stand.bmp",8
load image "R-Walk.bmp",9
load image "R-Walk2.bmp",10
load image "R-Walk3.bmp",11
load image "R-Walk4.bmp",12
load image "R-Walk5.bmp",13
load image "R-Walk6.bmp",14
rem Set initial values for Variables
heroX=320
heroY=240
herostance=1
heroface=1
rem The new herodir variable...1 = left, 2 = right
herodir=1
rem Set default display of hero sprite (Sprite 1)
sprite 1,heroX,heroY,herostance
rem Main loop
do
if rightkey()=1 and herodir = 1
herodir = 2
herostance = herostance + 8
else if leftkey()=1 and herodir = 2
herodir = 1
herostance = herostance - 8
endif
endif
if leftkey()=1
heroX=heroX-7
heroface=1
herostance=herostance+1
if herostance >7 then herostance=1
endif
if rightkey()=1
heroX=heroX+14
heroface=8
herostance=herostance-1
if herostance >14 then herostance=8
endif
if leftkey()=1 or rightkey()=1
sprite 1, heroX, heroY, herostance
else
sprite 1,heroX,heroY,heroface
endif
rem Refresh screen
sync
loop
i havent tested it or anything but i hope it helps, buddy

happy coding!