根据输入框中的值输入复制行,这些输入框来自唯一值的下拉列表

时间:2018-04-23 11:37:45

标签: excel vba excel-vba

此宏的目的是复制和粘贴在给定范围内出现特定值的行。此特定值由输入框中下拉列表的使用定义,其内容由此给定范围内的唯一值组成。

E.g。我们在D~20k列中有20个值是唯一的。下拉列表应包含这些唯一值。假设我们感兴趣的行是D列中包含值“2AB”的行。从输入框的下拉列表中选择“2AB”后,宏继续复制包含值的所有行“ 2AB“在D栏中并将其粘贴到另一个工作表中的B列。

我知道这很多但是我很吵,不知道从哪里开始。感谢。

1 个答案:

答案 0 :(得分:0)

我不确定你要完成什么,但是......我将构建一个这样的用户形式:

enter image description here

然后添加以下代码(假设您将数据从sheet1复制到sheet2):

Private Sub CommandButton1_Click()

Dim lastrow, newlastrow As Long

lastrow = Sheets("Sheet1").Range("A1").End(xlDown).Row + 1
t = 1

Do Until t = lastrow

    If Sheets("Sheet1").Cells(t, 4).Value = ComboBox1.Value Then

    Sheets("Sheet1").Cells(t, 4).Copy
    newlastrow = Sheets("Sheet2").Range("B" & .Rows.Count).End(xlUp).Row + 1
    Sheets("Sheet2").Cells(newlastrow, 2).PasteSpecial Paste:=xlPasteValues
    t = t + 1

    ElseIf Sheets("Sheet1").Cells(t, 4).Value <> ComboBox1.Value Then

    t = t + 1

    End If

Loop

Unload Me

End Sub

(你的宏将是:

Sub myMacro()

UserForm1.Initialize

End Sub