0

好吧,到目前为止,这是我的问题,我在 VB 中有一个表单,用户输入了一个数字,我想做的是在 Sheet2 中进行 excel 搜索“数据”如果已经捕获,最后放到Sheet1中最后一个空的A行。

到目前为止我有这个。

Private Sub CommandButton1_Click()
Me.TextBox1.Text = ""
Me.TextBox2.Text = ""
End Sub

Private Sub CommandButton2_Click()
Dim lastrow As Double
Dim frange As Range


lastrow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count

If TextBox1.Text = TextBox2.Text Then


Sheets("Sheet2").Activate
ActiveSheet.Range("A2").Select

If Range("A2:A200").Find(What:=TextBox2.Value _
, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate Then

Sheets("Datos").Activate

If Range("A3:A200").Find(What:=TextBox2.Value _
, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate Then

MsgBox ("This number is already registred")

Else

Cells(lastrow + 1, 1) = TextBox2.Value

End If

Else

MsgBox ("The number has not been buyed")

End If

Else

MsgBox ("The number are not the same")

End If

End Sub

我真的希望有人能帮助我,因为我被困住了,我看不到答案。

谢谢

对不起我的英语不好

4

1 回答 1

1

未经测试

请看看这是否是你正在尝试的?

Private Sub CommandButton1_Click()
    Me.TextBox1.Text = "": Me.TextBox2.Text = ""
End Sub

Private Sub CommandButton2_Click()
    Dim ws1 As Worksheet, ws2 As Worksheet
    Dim aCell As Range, bCell As Range
    Dim lrow As Long

    Set ws1 = Sheets("Datos"): Set ws2 = Sheets("Sheet2")

    If TextBox1.Text = TextBox2.Text Then
        Set aCell = ws2.Columns(1).Find(What:=TextBox2.Value _
                , LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, _
                SearchDirection:=xlNext, MatchCase:=False)
        If Not aCell Is Nothing Then
            Set bCell = ws1.Columns(1).Find(What:=TextBox2.Value _
                    , LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, _
                    SearchDirection:=xlNext, MatchCase:=False)
            If Not bCell Is Nothing Then
                MsgBox ("This number is already registred")
            Else
                '~~> This will write to sheet "Datos". if you want to
                '~~> write to sheet Sheet2 then change ws1 to ws2 below
                With ws1
                    lrow = ws1.Range("A" & .Rows.Count).End(xlUp).Row + 1
                    .Cells(lrow, 1) = TextBox2.Value
                End With
            End If
        Else
            MsgBox ("The number has not been buyed")
        End If
    Else
        MsgBox ("The number are not the same")
    End If
End Sub
于 2012-07-27T17:57:57.077 回答