2017-02-17 1 views
0

수식이 범위에서 실행될 때 증가하는 S1 셀 참조로 다음 수식을가집니다. S2, S3, S4. S1은 이러한 접근법을 통해, 각 셀에 대한 결과는 동일하다 증가하지 않기 때문에동적 셀 참조가있는 수식

=INDEX(Range1,((ROW(S1)-1)*Range1=2+ROW(S1)),1,MATCH(1,(Range3=Fixed_Period)*(Range4=Mortgage_InitialRate),0)) 

는 I 그러나, 다이내믹 범위의 모든 셀에 전술 한 수식을 적용하는이 코드 조각을 사용한다. 따라서, 어떻게 각각의 루프 반복에 대해 ('NUM'를 말한다)마다 새로운 S2, S3, S4로 행 등

Sub Formula() 
Dim FLrange As Range 
Set FLrange = Range("Range10") 

For Each cell In FLrange 
cell.Offset(0, 5).FormulaArray = "=INDEX(Range1,((ROW(S1)-1)*Range1=2+ROW(S1)),1,MATCH(1,(Range3=Fixed_Period)*(Range4=Mortgage_InitialRate),0))" 

Next cell 
End Sub 
+1

게다가, ((ROW (S1) -1) * Range1 = 2 + ROW (S1))'이라면 부울 값으로 인덱싱하는 것입니까? 수식에 구문 오류가있는 것 같습니다. –

답변

1

단위의 정수 변수를 확인 S1 증분하고 "S"& NUM을 사용하여 "S1"대신에

Sub Formula() 
    Dim FLrange As Range 
    Set FLrange = Range("Range10") 
    Dim num As Integer 
    num=1 
    For Each cell In FLrange 
    cell.Offset(0, 5).FormulaArray = "=INDEX(Range1,((ROW(S" & num & ")-1)*Range1=2+ROW(S" & num & ")),1,MATCH(1,(Range3=Fixed_Period)*(Range4=Mortgage_InitialRate),0))" 
    num=num+1 
    Next cell 
End Sub