2016-06-15 1 views
2

R1C1 수식에 IF(And() 구조를 사용하여 많은 범위의 셀을 채우려고합니다. 수식 셀을 실행하지만 때, 나는 공식의 TRUE 인 _ 경우 _ 값의 일부에 문자열 변수를 생성하는 루프를 만든이 작업을 수행하려면 대신 변수의 내용의 범위를 나열String_Value_If_True의 문자열 변수가 워크 시트의 행 범위를 반환합니다.

v = 1 
cs = 71 
ce = 87 
For c = cs To ce Step 2 
    r = "R" & v 
    drop.Range(Cells(8, c), Cells(LR, c)).FormulaR1C1 = "=IF(AND(RC3>=RC[-18],RC3<=RC[-17])," & r & ","""")" 
    v = v + 1 
Next 

전에서 변수를 선언 하위 porocedure의 상단 (r은 문자열). 이 세포는 내가 매크로를 실행 한 후로 나타나는 것입니다 :

=IF(AND($C8>=BA8,$C8<=BB8),8:8,"") 

그림 8 : 8는 "R1"이어야합니다.

+0

'R1'은 1 : 1로 변경되고 'R8'은 8 : 8이됩니다. v가 반복 될 때마다 행 출력이 증가합니다. 'R1'출력으로 원하는 것은 무엇입니까? 행이 아니라 실제 문자열? –

+0

r.value는 어떻습니까? 여전히, 당신은 여기에 간접적 인 것과 같은 것을 사용할 필요가 있다고 생각합니다. 원칙적으로 변수의 값은 셀 RI의 값이 아니라 R1입니다. 수식에서 "& .Range (r) &"을 시도해 볼 수도 있습니다. – Lowpar

답변

1

리터럴 문자열 "R1"을 If의 결과로 추측하고 있지만 인용되지 않은 경우 xlR1C1 범위 참조로 참조됩니다.

drop.Range(Cells(8, c), Cells(LR, c)).FormulaR1C1 = _ 
    "=IF(AND(RC3>=RC[-18], RC3<=RC[-17]), """ & r & """, TEXT(,))" 

TEXT(,)""""를 작성하지 않고도 "" 말을 그냥 쉬운 방법입니다.

관련 문제