[英]Excel VBA Userform - How do I add a value to a combo box from a list in the userform?
[英]VBA (excel) - How do I feed UserForm Textbox to function?
我有一个子程序,可以清除用户窗体文本框中的值,但是我尝试将其转换为函数,以便可以将其与多个用户窗体一起使用。
这是我的userForm代码(命令按钮代码)
Private Sub pdclear_Click()
Dim passform As UserForm
Set passform = NoteEntryForm1
Dim inputtext As TextBox
Set inputtext = frmBigInputBox
Call clear(passform, inputtext)
End Sub
这是我的功能
Function clear(passform As UserForm, inputbox As TextBox)
passform.inputbox.Value = vbNullString
End Function
尝试执行将返回“类型不匹配”错误。
我将其设置为用户窗体和文本框。 我究竟做错了什么?
谢谢 :)
您将函数定义为具有两个参数。 然后在函数中将参数串联起来,就好像一个是另一个的成员一样。 那会产生一个错误。 要解决用户表单上的输入框,请使用:
Function clear(passform As UserForm, inputbox As TextBox)
passform.Controls(inputbox.Name).Value = vbNullString
End Function
甚至更简单:
Function clear(inputbox As TextBox)
inputbox.Value = vbNullString
End Function
(由于我没有使用Excel中的表格的测试模块,因此我无法对此进行测试。)
错误Type Mismatch
非常明显,您正在将一个声明为TextBox
的变量设置为一个显然不是 TextBox
的变量。 我的建议:
使用函数TypeName(object)
检查类型,并确保它实际上是TextBox
:
Debug.Print TypeName(frmBigInputbox)
如果TextBox是该passform
的子passform
,则将其告知VBA:
Set inputtext = passform.frmBigInputBox
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.