此宏的目的是复制和粘贴在给定范围内出现特定值的行。此特定值由输入框中下拉列表的使用定义,其内容由此给定范围内的唯一值组成。
E.g。我们在D~20k列中有20个值是唯一的。下拉列表应包含这些唯一值。假设我们感兴趣的行是D列中包含值“2AB”的行。从输入框的下拉列表中选择“2AB”后,宏继续复制包含值的所有行“ 2AB“在D栏中并将其粘贴到另一个工作表中的B列。
我知道这很多但是我很吵,不知道从哪里开始。感谢。
答案 0 :(得分:0)
我不确定你要完成什么,但是......我将构建一个这样的用户形式:
然后添加以下代码(假设您将数据从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
)