2013-05-05 5 views
0

좋아요, 그래서 여러 개의 범위를 반복하는 "for each"루프를 수행하려고합니다. 그것을 더 잘 설명하기 위해 나는 계약서의 칼럼을 반복하고 이달에 서명 된 각 계약 (계약 열의 오른쪽에있는 "S"로 표시)이 어디에 있는지 확인하고 싶다. 또한 전월에 서명 한 것으로 표시됩니다.여러 범위를 반복하는 루프

이전 달은 다른 통합 문서이지만 내 수식에 참조 된 명명 된 범위라는 테이블을 만들 수 있다고 가정합니다. 이 시점에서 우리는 내 문제에 도달합니다. 각 루프에 대해 "범위 (X)의 각 셀에 대해"있지만 첫 번째 통합 문서 (지난 달 대신 이번 달)를 참조하므로 내 "if 문"에서 두 번째 통합 문서를 참조하는 방법을 알지 못합니다. (0, 1) = "S")

(0, 1) = "S"가있는 경우 wbkA 범위 ("A" 세 번째 부분은 내가하고 싶은 일이지만 누군가 내가이 부분을 도와 줄 수 있다면 알아낼 수 있을지 확신 할 수 있습니다.

제 질문이 모호한 경우 알려 주시면 자세히 설명 드리겠습니다. 어떤 도움을 주셔서 미리 감사드립니다!

+2

이 더 많은 도움을 할 수있게됩니다. – glh

+1

이 시점에서 DB에 넣는 대신 매월 별도의 통합 문서에 데이터를 보관하는 이유에 대해 질문을 제기 할 수 있다고 생각합니다. – ApplePie

+2

"lookup"이 이것에 가장 적합하다고 생각합니다. 루프가 잔인한 것처럼 보입니다. – glh

답변

0

닫힌 경우 Application.Workbooks(index or name) 또는 Application.Workbooks.Open(...)에서 다른 통합 문서에 액세스 할 수 있습니다.

그래서 :

Dim wbkA as Workbook 
Dim wbkB as Workbook 

'If both are open being A the first and B the second: 
Set wbkA = Application.Workbooks(1) 
Set wbkB = Application.Workbooks(2) 

또한 확실하게 자신의 이름을 확인할 수 있습니다. 두 통합 문서 중 하나에 대한

0

사용 항목() : 당신이 순간에이 코드를 표시하는 경우

Set objBook1 = Workbooks("April.xls") 
Set objSheet1 = objBook1.Sheets("Sheet1") 
Set rangeInBook1 = objSheet1.Range("A1:A5") 

Set objBook2 = Workbooks("May.xls") 
Set objSheet2 = objBook2.Sheets("Sheet1") 
Set rangeInBook2 = objSheet2.Range("A1:A5") 

book2Index = 1 
For Each objRng In rangeInBook1 
    itemFromBook1 = objRng.Value 
    itemFromBook2 = rangeInBook2.Item(book2Index) 
    book2Index = book2Index + 1 
Next 
+0

@Alex P 예 각 계약 이름은 ​​고유 한 이름입니다. 어떤 아이디어라도 여전히 같은 문제가 발생합니까? 또한 더 큰 매크로의 부분이기 때문에 VBA 여야합니다. –

관련 문제