EXCEL 将符合条件的整行复制到指定的位置(用宏写)
在指定位置(如:A1)输入要选的字节(如:电阻),回车后,将符合A1值的整行复制到指定的工作表sheet2中。用宏写。A列B列C列D列1电阻1K31082电容22P204...
在指定位置(如: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 展开
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 展开
2个回答
展开全部
在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 第三行开始的行。
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 第三行开始的行。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询