2016-12-15 41 views
0

我对程序和VBA非常新颖。我试图在Access中使用VBA,所以我写了这个小东西来测试我的理解。然而,当我运行时,它弹出空的宏对话框/窗口,而不是消息框中说的代码中的东西(我认为它会)。任何人都可以用5秒让我知道我错过了什么。非常感谢您在Access中运行时出现简单函数错误

Public Function AddOne(value As Integer) As Integer 
AddOne = value + 1 
End Function 
MsgBox "Adding 1 to 5 gives:" & AddOne(5) 
+1

在你的msgbox是数值而指定的地方的实际值的变量? – Rdster

+0

哦,对不起,最后一行应该是&AddOne(5) –

+0

你应该看这个系列:[Excel VBA简介](https://www.youtube.com/playlist?list=PLNIs-AWhQzckr8Dgmgb3akx_gFMnpxTN5) – 2016-12-15 15:28:37

回答

3

这是不可能Run了一个宏以任何参数/参数从“运行”对话框。

所以,如果你按运行按钮或F5 ,你会看到对话框,因为这是Excel的问你“你想要哪个程序运行”。

enter image description here

它会显示所有可用的程序。采用任何参数的过程将不可见,因为参数不会被提供。

其他一些要点:

MsgBox语句是功能之外。它应该是功能

Function AddOne(val As Integer) 
    Dim ret As Integer 
    ret = val + 1 
    'Display msgBox: 
    MsgBox "Adding 1 to " & val & " gives:" & ret 
    'return to caller: 
    AddOne = ret 
End Function 

里面既然你无法从该对话框运行,你需要从Immediate窗口中手动调用此:

enter image description here

或者,你可以简单地在即时窗格中使用以下内容将结果打印到即时窗口:

?AddOne(5) 

这将在免费中打印“6”。

enter image description here

+1

他可能会每次函数运行时都不希望MsgBox,所以为了简单起见,我建议为MsgBox单独设置一个Sub。 – Chrismas007

+1

@ Chrismas007我不在乎,这与问题无关,但谢谢。 –

+0

非常感谢!谢谢Chris和David –

相关问题