填充UserForm'无法设置Value属性'

时间:2013-12-23 17:36:29

标签: excel-vba excel-2010 vba excel

我在填充用户表单时遇到问题。我发现一些在线代码完全符合我的要求,而'示例'文件完美运行。当我根据需要修改它时,它会在下一行给出一条错误消息:

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栏保存用户的“全名”。这就是我用来找个人的方法。在用户表单上使用下拉框选择名称后,它会向我显示消息Could not set the Value property. Invalid property value.

如何解决这个问题呢?

1 个答案:

答案 0 :(得分:1)

尝试稍微破解您的代码并确保您的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