조건을 충족하면 특정 데이터를 되 돌리는 루프를 작성한 다음 결과를 내 ' 메인 '시트.단계별로 실행할 때 내 VBA 루프가 올바른 데이터를 모두 가져 왔지만 매크로를 실행할 때
불행히도 매크로를 실행하면 모든 데이터가 되돌아 오지 않습니다.
그러나 내 의견으로는이 단계가 진행되면 매우 이상합니다.
코드의 아무 지점에도 오류 메시지가 없으며 매크로를 단계별로 실행하면 코드가 완전히 실행됩니다.
내가 아래에있는 내 코드를 게시 한 :
Sub Loop_Data()
'BR stands for Blank Row
Dim i As Integer, j As Integer, k As Integer, m As Integer, BRMAin As Integer, BRData As Integer, BRPhysNot As Integer, _
SearchRange As Range, strID As String, ExtEnd As Integer, FindRow As Range
BRMAin = Sheets("Main").Cells(Rows.Count, "W").End(xlUp).Row
BRData = Sheets("Data").Cells(Rows.Count, "A").End(xlUp).Row
BRPhysNot = Sheets("PhysNot").Cells(Rows.Count, "A").End(xlUp).Row
Set SearchRange = Sheets("Data").Range("A3:A" & BRData)
Sheets("CoData").Activate
'assign j for number of rows (units) and i to start at 6 (column J) and end at 21
For j = 2 To 48
i = 35
Do Until i = 52
'criteria
If Cells(j, i - 1).Interior.Color <> RGB(51, 51, 51) And Cells(j, i - 1) > 0 And Cells(j, i).Interior.Color = RGB(51, 51, 51) Then
'find duration o
m = 0
Do While Cells(j, i + m).Interior.Color = RGB(51, 51, 51)
m = m + 1
Loop
'check that the flagged is definitely matching criteria
If Cells(j, i + m) = 0 Then
'set string ID as the string of uni & period to find in the helper column of Data sheet
'set k as row which that occurs in
strID = Cells(1, i) & Cells(j, 3)
Set FindRow = SearchRange.Find(strID)
k = FindRow.Row
'Pull back data into main sheet
ThisWorkbook.Sheets("Main").Range("X" & BRMAin + 1) = Sheets("Data").Cells(k, 8)
ThisWorkbook.Sheets("Main").Range("V" & BRMAin + 1) = Sheets("Data").Cells(k, 4)
ThisWorkbook.Sheets("Main").Range("W" & BRMAin + 1) = Sheets("Data").Cells(k, 2)
ThisWorkbook.Sheets("Main").Range("Y" & BRMAin + 1) = m
ThisWorkbook.Sheets("Main").Range("Z" & BRMAin + 1) = Sheets("CoData").Cells(1, i)
End If
End If
i = i + 1
Loop
Next j
End Sub
나는 https://www.mrexcel.com/forum/excel-questions/412764-macro-works-stepping-through-but-not-when ([잠을 추가하는 데 도움이 될 수 있습니다] 읽었습니다 -i-run-excel-2003-a.html # post2070738). 그것은 그들을 위해 (부분적으로)했다. –
스텝하지 않고 실행하면 어떻게됩니까? 그것은 아무것도하지 못하거나 절반의 일을하고 멈 춥니 다. – jsheeran
찾기에 지체가 있습니까?'worksheetfunction.match'가 당신에게 아무 것도주지 않습니까? findRow'debug.print '후에 시도하십시오. J는 "& j &"입니다. k는 "& k &"입니다. strid는 "strid"이고,'K'가 어딘가에서 작동하지 않는지 확인하십시오. –