Excel 填充UserForm';无法设置Value属性';
我在填充用户表单时遇到问题。我在网上找到了一些代码,这些代码完全符合我的要求,“示例”文件工作得非常好。当我根据自己的需要对其进行修改时,它会在以下行中显示一条错误消息:Excel 填充UserForm';无法设置Value属性';,excel,excel-2010,vba,Excel,Excel 2010,Vba,我在填充用户表单时遇到问题。我在网上找到了一些代码,这些代码完全符合我的要求,“示例”文件工作得非常好。当我根据自己的需要对其进行修改时,它会在以下行中显示一条错误消息: frmModifyData.Skill.Value = Application.VLookup(cmbItemName.Value, Sheets("Enrolled").Range(vrange), 1, False) 以下是我正在使用的全部代码: Dim NotNow As Boolean Private Sub cmd
frmModifyData.Skill.Value = Application.VLookup(cmbItemName.Value, Sheets("Enrolled").Range(vrange), 1, False)
以下是我正在使用的全部代码:
Dim NotNow As Boolean
Private Sub cmdCancel_Click()
Unload Me
End Sub
Private Sub cmdOkay_Click()
NotNow = True
N = Application.Match(Me.cmbItemName.Value, Range("AB:AB"), 0)
Cells(N, 1).Value = Me.frmEnterData.Skill.Text
Cells(N, 2).Value = Me.frmEnterData.txtCLASS.Text
Cells(N, 3).Value = Me.frmEnterData.LastName.Text
NotNow = False
End Sub
Private Sub cmbItemName_Change()
If NotNow Then Exit Sub
vrange = "FirstField"
'LINE WITH THE PROBLEM
frmModifyData.Skill.Value = Application.VLookup(cmbItemName.Value, Sheets("Enrolled").Range(vrange), 1, False)
'END OF LINE WITH THE PROBLEM (though it could affect the two lines of code below...)
frmModifyData.txtCLASS.Value = Application.VLookup(cmbItemName.Value, Sheets("Enrolled").Range(vrange), 2, False)
frmModifyData.LastName.Value = Application.VLookup(cmbItemName.Value, Sheets("Enrolled").Range(vrange), 3, False)
End Sub
Private Sub UserForm_Initialize()
frmModifyData.cmbItemName.RowSource = "FirstField"
End Sub
“FirstField”是这样定义的命名范围
=OFFSET(Enrolled!$AB$3,0,0,COUNTA(Enrolled!$AB:$AB)-1,3)
AB列保存用户的“全名”。这就是我用来寻找个人的方法。一旦我使用userform上的下拉框选择了一个名称,它就会给我一条消息无法设置Value属性。无效的属性值。
我如何修复此问题以使其正常工作 试着把你的代码分解一下,确保你的vlookup工作正常
Dim v
v = Application.VLookup(cmbItemName.Value, Sheets("Enrolled").Range(vrange), 1, False)
If Not IsError(v) Then
frmModifyData.Skill.Value = v
Else
Msgbox cmbItemName.Value & " was not found!"
End If
没错。然后尝试
v=“Tiberius McGoo”
。。。使用已知值硬编码,因此您可以排除该点的故障。相同的错误消息,现在停在这一行frmodifydata.Skill.value=v
什么是frmodifydata
?什么类型的控件?frmModifyData是用户表单的名称,“Skill”是我要填充到用户表单中的字段的名称。一旦找到“Name”(来自AB列),它应该会给我技能、职业和姓氏。这些是我输入数据的另一个用户表单中使用的名称。老实说,我不在乎名字是不是乔、弗兰克和弗雷德——只要行得通。