EXCEL 将符合条件的整行复制到指定的位置(用宏写)

在指定位置(如:A1)输入要选的字节(如:电阻),回车后,将符合A1值的整行复制到指定的工作表sheet2中。用宏写。

A列 B列 C列 D列
1 电阻 1K 3108
2 电容 22P 2049
3 电阻 33K 3004
4 晶体 945 6013
5 电容 22P 2049
6 电阻器 20KB VR1
7 三极管 BA1 Q301

最后sheet2表中得到的结果如下:
A列 B列 C列 D列
1 电阻 1K 3108
2 电阻 33K 3004
3 电阻器 20KB VR1

方法:
1、对表格进行筛选操作,按要指定条件的列筛选,筛选出符合条件的数据。
2、选中筛选结果区域。
3、按F5或CTRL+G快捷键,调出定位对话框。
4、点击定位条件,选择可见单元格,单击确定。
5、这时再进行复制操作即可。
6、在EXCEL中,要对筛选结果进行其他操作,都可以使用此方法,先对筛选结果选中。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-08
在sheet2工作表中插入以下VBA代码:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i, j, k As Long
If Target.Address <> "$A$1" Or IsEmpty(Target) Then Exit Sub
Range("A3:D65536").ClearContents
i = Worksheets("Sheet1").Range("B65536").End(xlUp).Row
If i = 1 Then i = 2
st = Target.Value
k = 3
With Worksheets("Sheet1")
For j = 2 To i
If VBA.InStr(1, .Cells(j, 2), st, vbTextCompare) > 0 Then
Cells(k, 1) = .Cells(j, 1)
Cells(k, 2) = .Cells(j, 2)
Cells(k, 3) = .Cells(j, 3)
Cells(k, 4) = .Cells(j, 4)
k = k + 1
End If
Next
End With
End Sub

以上代码实现在 sheet2 的 A1 中输入字符后会自动去 sheet1 中找相符的行填入 sheet2 第三行开始的行。本回答被提问者采纳
相似回答