【发布时间】:2017-05-12 09:59:46
【问题描述】:
我想知道是否有人可以帮助我。我创建了一个非常简单的用户表单来记录信息。但是,我的问题是,当其中一个字段为空白时,我会收到一条错误消息:
子或函数未定义。
Private Sub CommandButton1_Click()
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("Data")
'find first empty row in database
iRow = ws.Cells.Find(What:="*", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1
'check for a Name number
If Trim(QueryType.Value) = "" Then
QueryType.SetFocus
MsgBox "Please complete the form"
Exit Sub
End If
'copy the data to the database
ws.Cells(iRow, 1).Value = Format(Now, "DD/MM/YYYY")
ws.Cells(iRow, 2).Value = Format(Now, "HH:MM")
ws.Cells(iRow, 3).Value = Application.UserName
ws.Cells(iRow, 4).Value = CType.Value
ws.Cells(iRow, 5).Value = IName.Value
ws.Cells(iRow, 6).Value = QType.Value
ws.Cells(iRow, 7).Value = 1
ws.Cells(iRow, 8).Value = Format(Date, "MMM-YY")
'ws.Cells(iRow, 9).Value = Application.WorksheetFunction.VLookup(InternalName.Value, Sheet2.Range("C1:D23"), 2, 0)
'ws.Cells(iRow, 9).Value = Application.WorksheetFunction.IfError(VLookup(InternalName.Value, Sheet2.Range("C1:D23"), 2, 0), "")
ws.Cells(iRow, 10).Value = Application.WorksheetFunction.VLookup(InternalName.Value, Sheet2.Range("C1:E23"), 3, 0)
ws.Cells(iRow, 11).Value = "IB"
Unload Me
MsgBox "Data added", vbOKOnly + vbInformation, "Data Added"
End Sub
问题出在我收到错误的注释行之一。只有当我将下拉框留空时我才会收到。如果已填充,则不会发生错误。我可以很容易地为“不适用”添加一个额外的菜单选项,但宁愿它只是空白。请问大家有什么建议吗?
【问题讨论】:
-
调试时突出显示哪一行?
-
@Kelaref 无论 iRow,9 我取消注释。对不起,我应该说。我最初只是将它作为一个vlookup。当我收到错误时,我认为 Iferror 函数可以解决问题,但它会产生相同的结果。
标签: vba excel compiler-errors worksheet-function