2016-07-07 79 views
0

这是Excel 2013 Power Programming中的代码,出于某种原因,我无法使其工作。VBA问题,简单的扭曲

这个脚本是正确的开箱即用,但它不工作:

Sub SayHello() 
    Msg "Is your name " & Application.UserName & "?" 
    Ans = MsgBox(Meg, vbYesNo) 
    If Ans = vsNO Then 
    MsgBox "Oh, nevermind then. Bother" 
    Else 
    MsgBox "I must be clairvoyant!" 
    End If 
End Sub 

我得到一个编译错误: Sub or Function not defined 上的子

起跑线这是我的第一次使用VBA的经验,所以如果我做了非常愚蠢的事情,请温柔一点。

+1

工作'消息= “你的名字是” &Application.UserName和 “?”'(注意等号添加)。然后'Msg'不是'Meg'。 – Jeeped

+1

你还应该养成声明变量的习惯。设置**要求变量声明**在VBE的工具►选项►编辑器属性页面将把** [选项 显式](https://msdn.microsoft.com/en-us/library/y9341s4f.aspx)* *每个新创建的代码表顶部的声明。此 将避免拼写错误,如拼写错误,并影响您在变量 声明中使用正确的var类型。在没有声明的情况下即时创建的变量都是变体/对象类型。使用** Option Explicit **是 被认为是“最佳实践”。 – Jeeped

+0

好的建议,Jeeped。 – Edmund

回答

1

几个拼写错误和遗漏=

Sub SayHello() 
    Msg = "Is your name " & Application.UserName & "?" 
    Ans = MsgBox(Msg, vbYesNo) 
    If Ans = vbNo Then 
     MsgBox "Oh, nevermind then." 
    Else 
     MsgBox "I must be clairvoyant!" 
    End If 
End Sub 

测试,并在Excel 2010

+0

谢谢,不能相信我错过了那个废话。 – Edmund