Did you apply it to the shortcut's command line? That variable pulls whatever the containing file's location happens to be. It absolutely does matter, BTW, if you add a backslash. Doing "%~dp0\ETC.xslm" gives you, say, "X:\Elite\ETC\\ETC.xslm", which is invalid. Using "%~dp0ETC.xslm" will give you the actual path including backslash so it ends up being equivalent to "X:\Elite\ETC\ETC.xslm". If you don't use quotes and have, say an foldername of Elite Dangerous then you'd get X:\Elite\\ETC.xslm. Using quotes in that case would give you "X:\Elite Dangerous\ETC\ETC.xslm".
It's rather nonintuitive, I know, but that's how it works. When I worked at Microsoft, it was one of my most common issues when some enterprise guy would have a failed script and just couldn't figure out where it died. It got to a point where I'd ask if they were using it and if they didn't know, I had them search for it in the script. Heh.