0

共有ワークシートを作成しています - 列 O をクリックすると、3 つの質問をするユーザー フォームが作成されます。これらの回答を非表示のワークシートに入れる必要があります。コードを書きましたが、実行するとコンパイル エラー メソッドが表示されます。私はVBAに慣れていないので、理解できない何かが欠けていると確信しています。私が見逃しているあらゆる種類のエラーがある可能性があります。これは、コピーして貼り付けただけではない最初のものです。だからどんな助けでも大歓迎です!この場合、私は探していたものに関するフォームをグーグルで見つけ、必要なものに合うように調整しようとしました. 初ミスかも!!

を強調している.

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
4

2 に答える 2

2

x1Rows (およびその他)。彼らはそこで「一」文字を使用しています。ただし、X1ROWS ではなく、"L" XLROWS で綴る必要があります。

于 2013-03-27T15:04:48.093 に答える
0

Find メソッドのドキュメントでは、 パラメーター 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
于 2013-03-27T15:18:41.537 に答える