1

我正在尝试创建一个弹出框来搜索第二列的某个值,因为我还是 vba 编码的新手,我只能通过谷歌搜索来做到这一点。

我要做的是(所有这些都在宏中完成),找到一个特定的值,然后当程序找到特定的值时,它将复制该值所在的整行并将其粘贴到excel中的新工作表(具有相同的标题)

这是我到目前为止的代码。

Sub macrotest()
x = 2
Do While Cells(x, 1) <> ""
If Cells(x, 2) = "TEST" Then
Worksheets("Sheet1").Rows(x).Copy
Worksheets("Sheet2").Activate
erow = Sheet2.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
ActiveSheet.Paste Destination:=Worksheets("Sheet2").Rows(erow)
End If
Worksheets("Sheet1").Activate
x = x + 1
Loop

End Sub

在此处输入图像描述

正如您从上面看到的,我正在尝试将带圆圈的行复制到新工作表中。

4

1 回答 1

0

就像我在上面的评论中提到的那样,您可以使用Autofilter它来做到这一点。与此处提到的代码不同,您可以使用InputBox获取搜索文本

在该链接strSearch = "Clarke, Matthew"中是硬编码的。现在你可以使用下面的代码来获得你自己的strSearch

Sub Sample()
    Dim strSearch

    strSearch = Application.InputBox("Please enter the search string")

    If strSearch <> False And Len(Trim(strSearch)) <> 0 Then
        Debug.Print strSearch

        '
        '~~> Rest of the code
        '
    End If
End Sub
于 2013-10-17T06:47:56.657 回答