Excel宏来查找指定的值?

时间:2013-10-01 12:02:15

标签: excel-vba vba excel

我有Date& B1栏中的时间和D1栏中的金额。

我需要一个宏来搜索我的工作表中的指定金额,如果找到了复制金额以及日期到下一张工作表。多次发生。

如果包含搜索框会更好。

由于

这是我从互联网上发现的代码很好,但在这里它搜索“邮箱”这个词,而且没有可用的搜索框。 Sub SearchForString()

Dim LSearchRow As Integer
Dim LCopyToRow As Integer

On Error GoTo Err_Execute

'Start search in row 4
LSearchRow = 4

'Start copying data to row 2 in Sheet2 (row counter variable)
LCopyToRow = 2

While Len(Range("A" & CStr(LSearchRow)).Value) > 0

    'If value in column E = "Mail Box", copy entire row to Sheet2
    If Range("E" & CStr(LSearchRow)).Value = "Mail Box" Then

        'Select row in Sheet1 to copy
        Rows(CStr(LSearchRow) & ":" & CStr(LSearchRow)).Select
        Selection.Copy

        'Paste row into Sheet2 in next row
        Sheets("Sheet2").Select
        Rows(CStr(LCopyToRow) & ":" & CStr(LCopyToRow)).Select
        ActiveSheet.Paste

        'Move counter to next row
        LCopyToRow = LCopyToRow + 1

        'Go back to Sheet1 to continue searching
        Sheets("Sheet1").Select

    End If

    LSearchRow = LSearchRow + 1

Wend

'Position on cell A3
Application.CutCopyMode = False
Range("A3").Select

MsgBox "All matching data has been copied."

Exit Sub

Err_Execute:     MsgBox“发生错误。”

End Sub

1 个答案:

答案 0 :(得分:0)

这是你可以适应的事情:

Sub dural()
    Dim s1 As Worksheet, s2 As Worksheet
    Dim K As Long, N As Long, i As Long
    Set s1 = Sheets("Sheet1")
    Set s2 = Sheets("Sheet2")
    K = 1
    s1.Select
    N = Cells(Rows.Count, "B").End(xlUp).Row
    v = Application.InputBox(Prompt:="Enter value", Type:=1)
    For i = 1 To N
        If Cells(i, "D").Value = v Then
            Cells(i, "B").Copy s2.Cells(K, "B")
            Cells(i, "D").Copy s2.Cells(K, "D")
        K = K + 1
        End If
    Next i
End Sub