2013-12-23 34 views
0

我有一個填充用戶窗體的問題。我發現了一些在線代碼,完全符合我的要求,並且'示例'文件完美地工作。當我把它修改我的需要,它使我對以下行的錯誤消息:填充用戶窗體'無法設置值屬性'

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

嘗試打破你的代碼下來一點,請確保您的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 
+0

權上。然後嘗試'v =「Tiberius McGoo」'...使用已知值的硬編碼,以便您可以解決該問題。 – Smandoli

+0

同樣的錯誤信息,現在就停在這條線上'frmModifyData.Skill.Value = v' –

+0

什麼是'frmModifyData'?什麼類型的控制? –