关于excel vba的public有关问题

关于excel vba的public问题
这段代码存放在modules下面,运行报错,
Public sinal As String

Sub testPublic()
sinal = "testPublic"
MsgBox sinal
End Sub

Compile error:
Variable not defined

调试报错的语句就是sinal = "testPublic"这句

假如在Forms下面调用该public 变量

Private Sub Cancel_Click()
sinal = "cancel"
msgbox sinal
End Sub

是可以正确弹出消息
网上搜索结果,第一种的用法说是可以的,不过我这是不能用的。求助大大帮忙。
我用的excel 是ms 2007版本。
------解决方案--------------------
问题已经解决Public sinal As String前面还有sub导致出错