已收到如何在列中搜索字符串,然后将其存储在数组中的帮助。是否可以存储整个行?已搜索过但无法找到它。
我想在一个包含数据字符串的工作表中搜索。然后将包含该字符串的行复制到另一个工作表。
我的代码看起来像这样。
Set wsRaw = Worksheets("raw_list")
Set phaseRange = wsRaw.Columns(PhaseCol)
SearchString = "start"
Set aCell = phaseRange.Find(What:=SearchString, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If Not aCell Is Nothing Then
Set bCell = aCell
ReDim Preserve arrStart(nS)
arrStart(nS) = aCell.Row
nS = nS + 1
Do While ExitLoop = False
Set aCell = phaseRange.FindNext(After:=aCell)
If Not aCell Is Nothing Then
If aCell.Row = bCell.Row Then Exit Do
ReDim Preserve arrStart(nS)
arrStart(nS) = aCell.Row
nS = nS + 1
Else
ExitLoop = True
End If
Loop
Else
End If
感谢任何帮助:)
答案 0 :(得分:2)
由于您是根据相关列中的搜索条件将数据从Sheet1复制到Sheet2,然后我建议使用自动过滤。
见这个
Sub Sample()
Dim wsRaw As Worksheet
Dim strSearch As String
Dim PhaseCol As Long, LastRow As Long
Dim phaseRange As Range, rng As Range
strSearch = "start"
'~~> Change this to the relevant column
PhaseCol = 1
Set wsRaw = Sheets("raw_list")
With wsRaw
LastRow = .Range(Split(Cells(, PhaseCol).Address, "$")(1) & _
.Rows.Count).End(xlUp).Row
Set phaseRange = wsRaw.Range( _
Split(Cells(, PhaseCol).Address, "$")(1) & _
"1:" & _
Split(Cells(, PhaseCol).Address, "$")(1) & _
LastRow)
'~~> Remove any filters
.AutoFilterMode = False
'~~> Filter, offset(to exclude headers) and copy visible rows
With phaseRange
.AutoFilter Field:=1, Criteria1:=strSearch
Set rng = .Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow
'~~> Chnage Sheet2 to the relevant sheet name where you want to copy
rng.Copy Sheets("Sheet2").Rows(1)
End With
'~~> Remove any filters
.AutoFilterMode = False
End With
End Sub
<强>快照强>