Check your capitalization carefully. Verify that the character does indeed have an attribute with exactly that spelling, and that it has a value. Also, if you want it to display a total, be sure to wrap your chat command in brackets, or else you will only get the formula returned.
Example: In my campaign I have a character named "Kiliki" with an attribute called "strength" which has a value of "20". If I type:
@{Kiliki|strength}
The returned value in the chat log will be:
20
if I type:
@{Kiliki|strength} + 2
I will get:
"20 + 2"
If I type:
[[@{Kiliki|strength} +2]]
I will get:
22
This last answer will be in a yellow highlight square that indicates that I can hover over it to see the formula that produced the answer.
If what you are after is running a character macro in a call, then you need to preface with a percent sign, rather than an at symbol. For example, my same character has a macro called "Shift". To activate the macro, the syntax is:
%{Kiliki|Shift}
This will tell the site to run the Shift macro of the character Kiliki.
If you want to combine the two, then you need to make sure your macro (that you are calling) produces a number. For example, I just created a macro on Kiliki's character sheet called "spotcheck", that just calls her wisdom. Then I used the following command in chat:
[[%{Kiliki|spotcheck} +2]]
This called the Intelligence with the character macro (16), and added (2) and returned the only the final result (18) because of the brackets, yielding:
18
If you hover over the answer you get:
Rolling 16 + 2 = (16+2)
Finally % before the expression returns a character ability (macro), while # runs generic macros.
As it works out, this is the macro that @Old Zean now uses, per his comment below.
I now wrote a new macro: &{template:DnD35StdRoll} {{skillflag=true}}
{{name=@{charname|character_name}}}
{{check=Spot check:}}
{{checkroll=[[1d20 + [[@{charname|spot}]] +2 ]] }} this is working
perfectly thanks again!