Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 填充UserForm';无法设置Value属性';_Excel_Excel 2010_Vba - Fatal编程技术网

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列),它应该会给我技能、职业和姓氏。这些是我输入数据的另一个用户表单中使用的名称。老实说,我不在乎名字是不是乔、弗兰克和弗雷德——只要行得通。