Putting aside mappings for a moment, what do we do when we're manually entering commands and find a range on the command line that we don't want? Hit <kbd>Backspace</kbd> five times? Well...yes...that's one possibility but there's [something better than that](http://vimhelp.appspot.com/cmdline.txt.html#c_CTRL-U):


                                                        c_CTRL-U
    CTRL-U		Remove all characters between the cursor position and
         		the beginning of the line. ...

Since a mapping is essentially the same as the equivalent manual command we just need to translate <kbd>Ctrl</kbd>+<kbd>U</kbd> to something that works in Vimscript. That would be the equivalent [keycode](http://vimhelp.appspot.com/intro.txt.html#keycodes) `<C-U>`.

So add `<C-U>` at the beginning of your mapping right after the opening `:`. For example:

    vnoremap ,a :<C-U>silent! ..etc..

That will clear *any* text that happens to currently be on the command line before your command(s) are applied.