2013-04-07 4 views
-2

네임드 범위가 장애가 발생하면 중첩 된 For Each 루프를 사용하여 찾은 사람이 있습니까?Excel VBA 중첩 For 명명 된 범위를 사용하는 각 루프

여기에 이름이 지정된 범위가 무엇에 속하는지 알기 위해 (나를 위해) 도움이 될 수 있다고 생각하는 상황을 생각해 봅니다.

작성된 비즈니스의 요구 사항에는 [이름이 ListofPrograms 인] 프로그램 이름 [이름이 ListofDates] (이름이 ListofDates 인)이 할당되어 있으며 [이름이 ListofDates] (10 일 이상) ListofCows] (5 점 만점) 학생들의 수의사가 그들의 학문적 연구와 임상 결과를 교사들에게 보여주기 위해 착색 된 프로그램에 배치되었습니다.

여기 내가 어떻게 할 수 있었는지에 대한 VBA 코드. 이 방법으로 시트 ("결과")를 성공적으로 채우는 방법을 모르기 때문에 Debug.Print를 지금 사용했습니다.

Option Explicit 
Sub CowsGenerator() 
Dim Programrng, Daterng, Cowsrng As Range 

With Sheets("Outcome") 
    For Each Programrng In Range("ListofPrograms") 
      For Each Daterng In Range("ListofDates") 
        For Each Cowsrng In Range("ListofCows") 
         Debug.Print Programrng.Value, Daterng.Value, Cowsrng.FormulaR1C1 = "=RANDBETWEEN(1,5)" 
        Next Cowsrng 
      Next Daterng 
    Next Programrng 
End With 
End Sub 

다음은 직접 실행 창에 표시된 스 니펫입니다. 내가 잘못된 생각하지 않았다

6    1   False 
6    1   False 
6    2   False 
6    2   False 
6    2   False 
6    2   False 
6    2   False 
6    3   False 
6    3   False 

이 RANDBETWEEN에서 좋은 반응이고, 나는 그것이 6에서 계속주의하지 1.

나는 피터를이 감사를 향상시킬 수있는 방법을 어떤 제안이에서.

+0

'Debug.Print Cowsrng.FormulaR1C1 = "= RANDBETWEEN (1,5)"'인쇄를 기대 했습니까? 'Cowsrng'의 수식이'= RANDBETWEEN (1,5)'문자열이 아니라면'False'를 출력합니다. –

답변

0

귀하의 즉각적인 창에 들어가기 위해 수식 R1C1이 "= RANDBETWEEN (1,5)"문자열과 같은지 확인하십시오. 나는 이것이 당신이 필요하지 않습니다 의심 당신은 당신의 가치 저장 youneeded 경우 귀하의 debug.print에 다음 1, 5

사용 사이의 임의의 숫자를 원 :

Cowsrng.FormulaR1C1 = "=RANDBETWEEN(1,5)" 
Debug.Print Programrng.Value, Daterng.Value, Cowsrng.Value 

또는 필요하지 않은 경우를 저장된 값 :

Debug.Print Programrng.Value, Daterng.Value, Application.workbookfunction.randbetween(1,5) 
+0

내일 코드를 확인합니다. –