Vba 在Visual Basic for Excel 2007中,如何选择包含特定模式的行?
我想用Visual Basic编写一个程序,查看工作表的L列,搜索L列中包含“123”的单元格。然后,我想选择L列中包含“123”的行,复制它们,并将它们粘贴到新的工作表中。我该怎么做?我创建了一个宏,但我不确定如何更改它,以便可以找到多个项并获取这些多个项的所有行。下面是宏给我的部分信息:Vba 在Visual Basic for Excel 2007中,如何选择包含特定模式的行?,vba,excel,excel-2007,Vba,Excel,Excel 2007,我想用Visual Basic编写一个程序,查看工作表的L列,搜索L列中包含“123”的单元格。然后,我想选择L列中包含“123”的行,复制它们,并将它们粘贴到新的工作表中。我该怎么做?我创建了一个宏,但我不确定如何更改它,以便可以找到多个项并获取这些多个项的所有行。下面是宏给我的部分信息: Columns("L:L").Select Selection.Find(What:="123", After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=
Columns("L:L").Select
Selection.Find(What:="123", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Rows("1058:1058").Select
Selection.Copy
Sheets("123").Select
Rows("4:4").Select
range("C4").Activate
Selection.Insert Shift:=xlDown
Rows("5:5").Select
range("C5").Activate
查找L列中的所有123,并将相应的行复制到Sheet2。
根据需要调整
Sub CopyRows()
Dim FoundRange As Range
Dim c As Range
For Each c In Application.Intersect(Columns("L"), UsedRange)
If c.Value like "*123*" Then
If FoundRange Is Nothing Then
Set FoundRange = c
Else
Set FoundRange = Application.Union(FoundRange, c)
End If
End If
Next
If Not FoundRange Is Nothing Then
FoundRange.EntireRow.Copy Worksheets("Sheet2").Range("A4")
End If
End Sub
您可能希望c.值(如“123”)与OP使用的Find的xlPart一致。@Dick我至少使用了15个字符来表示同意。