我是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
答案 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