No, the # sign is an illegal character in a variable name and, if you meant the # sign to be part of the name, it too is illegal (a # sign can legitimately be located where you show it, but it is not part of the variable's name, rather, it is a type declaration character indicating the variable is a Double). Here are the naming rules for procedures, constants, variables, and arguments in a Visual Basic module as taken from the VB help files...
You can't use a space, period (.), exclamation mark (!), or the characters @, &, $,# in the name.
Name can't exceed 255 characters in length.
Generally, you shouldn't use any names that are the same as the functions, statements, and methods in Visual Basic. You end up shadowing the same keywords in the language. To use an intrinsic language function, statement, or method that conflicts with an assigned name, you must explicitly identify it. Precede the intrinsic function, statement, or method name with the name of the associated type library. For example, if you have a variable called <code>Left</code>, you can only invoke the Left function using <code>VBA.Left</code>.
You can't repeat names within the same level of scope. For example, you can't declare two variables named <code>age</code> within the same procedure. However, you can declare a private variable named <code>age</code> and a procedure-level variable named <code>age</code> within the same module. Note Visual Basic isn't case-sensitive, but it preserves the capitalization in the statement where the name is declared.