루프를 실행할 때 더 많은 요인을 고려할 수 있도록 코드를 수정하려고합니다. 여기에 내가 지금까지 가지고있는 것은, 그것은 2 = 605 (2와 605 사이에서, 내 G 열의 값은 항상 "Makati City"와 동일하기 때문에) i = 2에서 605까지 실행되는 루프입니다.
이 루프에는 몇 가지 동작이 정의되어 있으며 정상적으로 작동합니다.Excel - VBA : 셀 내용이 특정 값과 같으면 루프 루프
For i = 2 To lRowBldg
Range("B" & i).Activate
'try to find a match btwn active cell and one of the elements from parsed address
For Each cell In elementsListRange.Cells
If Match(ActiveCell.Value, cell.Value) Then
Range("K" & i).Value = Range("K" & i).Value + 13
Else
Range("K" & i).Value = Range("K" & i).Value + 0
End If
If Match(ActiveCell.Offset(0, 4).Value, cell.Value) Then
Range("K" & i).Value = Range("K" & i).Value + 8
Else
Range("K" & i).Value = Range("K" & i).Value + 0
End If
Next
Next i
하지만이 파일에 약간의 수정을 할 계획으로, 내 코드를 다시 생각해야합니다 여기 내 루프가 무엇을하고 있는지 보여주는 관련 코드입니다. 지금까지 필자는 한 도시에 대해서만이 파일을 가지고 있었기 때문에 기본적으로 첫 번째 값에서 마지막 값까지 반복 할 수있었습니다. 이제 더 많은 도시를 추가 할 계획입니다. 예를 들어 2에서 605 (Makati City), 606에서 900 (blabla City), 901에서 ... 등등.
"한 G 열에서 셀의 값에 대한 루프는 XXXXX 같다 (blabla시, 수, 마카티 시티가 될 수 무엇이든)"내가하려고 어떤
이 같은 것입니다
그리고 마카티 시티에 대해 언급하면, i = 2에서 605까지 반복 될 것입니다. blabla City라면 i = 606에서 900까지 반복 할 것입니다.
내 파일이 너무 길어질 수 있으므로 너무 많은 리소스를 사용하지 않는 방법으로이 작업을 수행하는 방법에 대해 알고 계십니까?
미리 감사드립니다.
가장 빠른 해결 방법은 루프 내에서 추가'if' 문을 추가하는 것입니다 라인 ... 이것은 Cells (cell.row, "G") = "blabla City"then ...와 같을 수 있습니다 ... –
고마워요. 카즈 죠.하지만,이 일을하면서, blabla City를 검색하고있는 것처럼 더 이상 이해하지 못하는 "For i = 2 To lRowBldg"를 유지하고 있습니다. "i"는 606에서 시작해서 900에서 중지해야합니까? 내 파일에 10000 개의 행이있는 경우 해당 행에 대해서만 루프를 실행하고 싶습니다. 작업을 빠르게 진행하기 위해 몇 백 개의 루프를 반복합니다. – Phalanx
제가 구현이 가장 빠름이라고 말한대로 ... 어쨌든 도시 이름의 첫 행을 찾아야합니다. 당신은'.Range.Find' 객체/속성을 사용하거나 [이 질문에서] (http://superuser.com/questions/586764/how-to-implement-match와 같이)'match + index' 함수를 사용할 수 있습니다. -와 - 인덱스 - 기능 - 함께 - 엑셀 - VB에서) (대답하지) –