vba – Excel 2010。本地variables未在我的函数中初始化

这是我的sub():

Sub SendEmail() MyPrompt = "want to add a message?" Mysubject = PopMessage(MyPrompt) End Sub 

这是我的函数():

 Public Function PopMessage(ByVal Mypromt As String) As String 'Open a existing userform with a MyPrompt MsgBox and catch user text FormName = "UserForm1" ' choose here the desired UserForm Dim Mytext As String Mytext = "" On Error Resume Next MsgBox (MyPrompt) ' only for debuging Response = MsgBox(Prompt:=MyPrompt, Buttons:=vbYesNo) If Response = vbYes Then If UserForm1 Is Nothing Then ' we want to check if userform exists MsgBox ("Le Formulaire n'existe pas") Exit Function End If Unload UserForm1 ' first we clear the userform UserForm1.Show Mytext = UserForm1.TextBox1.Text End If End Function 

两者都是理智的WorkBook。 MsgBox(MyPrompt)返回空。 谢谢你的帮助。

经典案例,你为什么应该使用Option explicit

你有没有看到有什么不同? ;)

Public Function PopMessage(ByVal Mypromt As String) As String

MsgBox (MyPrompt)

有趣的阅​​读(点2)

这解释了你正面临的同样的问题。

呃….一个错字可能会让你头疼

我同意总是声明variables是个好习惯