接收未找到的编译错误方法或数据成员 - 使用VBA

时间:2013-03-27 15:01:30

标签: excel vba compilation

我是VBA和这个网站的新手,如果我没有提供所有重要信息,请与我一起光临。我正在创建一个共享工作表 - 在O列中,当他们点击时我创建了一个用户表单,询问了3个问题。我需要将这些答案放入隐藏的工作表中。我编写了代码,但是当我运行它时,我得到了编译错误方法。因为我对VBA很陌生,所以我肯定我错过了一些我不理解的东西。我错过了各种各样的错误。这是我第一次没有复制和粘贴的内容。所以任何帮助将不胜感激!在这种情况下,我用Google搜索并找到了一个关于我正在寻找的形式,并尝试调整它以适应我需要它。可能是我的第一个错误!!

突出显示

iRow = ws.Cells.Find(What:="*", SearchOrder:=x1Rows, _
        SearchDirection:=x1Previous, LookIn:=x1Values).Row + 1

这是我的整个代码。请帮忙!

Private Sub cmdAdd_Click()
    Dim iRow As Long
    Dim ws As Worksheet
    Set ws = Worksheets("WebLeadInfo")

    'find first empty row database
   iRow = ws.Cells.Find(What:="*", SearchOrder:=x1Rows, _
        SearchDirection:=x1Previous, LookIn:=x1Values).Row + 1

    'check for a contact
    If Trim(Me.txtContact.Value) = " " Then
        Me.txtContact.SetFocus
        MsgBox "Please enter info"
        Exit Sub
    End If

    'copy the data to the database
    'use protect and unprotect lines,
    '   with your password
    '   if worksheet is protected
    With ws
    '   .Unportect Password:="sunway12"
       .Cells(lRow, 1).Value = Me.txtContact.Value
       .Cells(lRow, 3).Value = Me.txtFind.Value
       .Cells(lRow, 4).Value = Me.txtSearch.Value
       .Protect Password:="sunway12"
    End With

    'clear the data
    Me.txtContact.Value = " "
    Me.txtFind.Value = " "
    Me.txtSearch.Value = " "
    Me.txtContact.SetFocus


End Sub

Private Sub cmdClose_Click()
    Unload Me
End Sub

2 个答案:

答案 0 :(得分:2)

x1Rows(以及其他人)。 他们在那里使用“一个”字符。但它们应拼写为“L” XLROWS,而不是X1ROWS

答案 1 :(得分:0)

查找方法的文档中,您可以看到 参数SearchOrder 可以是以下 XlSearchOrder 常量之一:

xlByRows
xlByColumns

SearchDirection 可以是以下 XlSearchDirection 常量之一:

xlNext  
xlPrevious

最后 LookIn 参数应设置为:

xlValues

所以在你的情况下,它将是:

'find first empty row database
Dim findResult As Range
Set findResult = ws.Cells.Find(What:="*", SearchOrder:=xlByRows, _
        SearchDirection:=xlPrevious, LookIn:=xlValues)

iRow = 1 ' in case that the sheet contains no data the first empty row is the first one
If (Not findResult Is Nothing) Then iRow = findResult.Row + 1

' ...

With ws
'   .Unportect Password:="sunway12"
   .Cells(iRow, 1).Value = Me.txtContact.Value
   .Cells(iRow, 3).Value = Me.txtFind.Value
   .Cells(iRow, 4).Value = Me.txtSearch.Value
   .Protect Password:="sunway12"
End With