幫我!!!當我搜索mCell時,它只是運行第一個值,而不是循環其他值,所以我應該怎麼做?Excell循環問題宏FindNext
Sub finddataver2()
Dim mRange As Range
Dim mFCell As String
Dim mCell As Range
Dim mName As String
Dim sRange As Range
Dim sFCell As String
Dim sCell As Range
Dim seg As String
Dim neg As String
Dim i As Integer
Dim finalrow As Integer
neg = Sheets("FindSupp").Range("C2").Value
mName = Sheets("FindSupp").Range("C4").Value
seg = Sheets("FindSupp").Range("C6").Value
Sheets("FindSupp").Range("B14:L2000").ClearContents
Worksheets("Data").Select
finalrow = Sheets("Data").Range("A10000").End(xlUp).row
Worksheets("Data").Select
Set mRange = Sheets("Data").Range("I:I")
Set mCell = mRange.Find(What:=mName, MatchCase:=False, LookAt:=xlPart)
Worksheets("Data").Select
Set sRange = Sheets("Data").Range("H:H")
Set sCell = sRange.Find(What:=seg, MatchCase:=False, LookAt:=xlPart)
Worksheets("Data").Select
For i = 2 To finalrow
If neg = "All" Or neg = "" Then
的問題,從這裏開始時,即時通訊的檢索算法價值它不會僅環採取的第一個值僅MCELL
If mName = "" Or mName = "All" Then
If seg = "" Or seg = "All" Then
Range(Cells(i, 1), Cells(i, 11)).Copy
Sheets("FindSupp").Range("B1000").End(xlUp).Offset(1,).PasteSpecial xlPasteFormulasAndNumberFormats
ElseIf Sheets("Data").Cells(i, 8) = sCell.Value Then
sFCell = sCell.Address
Range(Cells(i, 1), Cells(i, 11)).Copy
Sheets("FindSupp").Range("B1000").End(xlUp).Offset(1, 0).PasteSpecial xlPasteFormulasAndNumberFormats
Set sCell = sRange.FindNext(sCell)
End If
ElseIf Sheets("Data").Cells(i, 9) = mCell.Value Then
If seg = "" Or seg = "All" Then
Range(Cells(i, 1), Cells(i, 11)).Copy
Sheets("FindSupp").Range("B1000").End(xlUp).Offset(1, 0).PasteSpecial xlPasteFormulasAndNumberFormats
ElseIf Sheets("Data").Cells(i, 8) = sCell.Value Then
sFCell = sCell.Address
Range(Cells(i, 1), Cells(i, 11)).Copy
Sheets("FindSupp").Range("B1000").End(xlUp).Offset(1, 0).PasteSpecial xlPasteFormulasAndNumberFormats
Set sCell = sRange.FindNext(sCell)
End If
End If
ElseIf Sheets("Data").Cells(i, 2) = neg Then
If mName = "" Or mName = "All" Then
If seg = "" Or seg = "All" Then
Range(Cells(i, 1), Cells(i, 11)).Copy
Sheets("FindSupp").Range("B1000").End(xlUp).Offset(1, 0).PasteSpecial xlPasteFormulasAndNumberFormats
ElseIf Sheets("Data").Cells(i, 8) = sCell.Value Then
sFCell = sCell.Address
Range(Cells(i, 1), Cells(i, 11)).Copy
Sheets("FindSupp").Range("B1000").End(xlUp).Offset(1, 0).PasteSpecial xlPasteFormulasAndNumberFormats
Set sCell = sRange.FindNext(sCell)
End If
ElseIf Sheets("Data").Cells(i, 9) = mCell.Value Then
If seg = "" Or seg = "All" Then
Range(Cells(i, 1), Cells(i, 11)).Copy
Sheets("FindSupp").Range("B1000").End(xlUp).Offset(1, 0).PasteSpecial xlPasteFormulasAndNumberFormats
Set mCell = mRange.FindNext(mCell)
ElseIf Sheets("Data").Cells(i, 8) = sCell.Value Then
sFCell = sCell.Address
Range(Cells(i, 1), Cells(i, 11)).Copy
Sheets("FindSupp").Range("B1000").End(xlUp).Offset(1, 0).PasteSpecial xlPasteFormulasAndNumberFormats
End If
End If
End If
Next i
Worksheets("FindSupp").Select
Cells(2, 3).Select
Worksheets("FindSupp").Range("Z:Z").ClearContents
End Sub
,使問題更加簡單我怎麼能循環這件事... 。
ElseIf Sheets("Data").Cells(i, 9) = mFCell Then
If seg = "" Or seg = "All" Then
Range(Cells(i, 1), Cells(i, 11)).Copy
Sheets("FindSupp").Range("B1000").End(xlUp).Offset(1, 0).PasteSpecial xlPasteFormulasAndNumberFormats
Set mCell = mRange.FindNext(mCell)
其實,我發現它在哪裏,但我不知道問題的問題,如何讓它循環
Worksheets("Data").Select
Set mRange = Sheets("Data").Range("I:I")
Set mCell = mRange.Find(What:=mName, MatchCase:=False, LookAt:=xlPart)
Worksheets("Data").Select
Set sRange = Sheets("Data").Range("H:H")
Set sCell = sRange.Find(What:=seg, MatchCase:=False, LookAt:=xlPart)
請修復您的格式 –
問這可能是愚蠢的,但您究竟將Finalrow設置爲什麼? 'finalrow = Sheets(「Data」)。Range(「A10000」)。End(xlUp)。row' –
實際上,最終行程可以是無限的,但是我已經將值限制到10000行數據。所以循環會一直持續到最後一刻。它用於循環條件 – Beans