2016-09-17 7 views
2

수식의 셀이 실제 값으로 대체되도록 셀 기반 수식을 변환하는 방법이 있습니까? 자동 완성 기능이 없다면? 여기 Excel - 셀 기반 수식을 실제 셀 값으로 대체

는 공식은 말을 바로 할 수 있습니다, 예입니다 :이에서 내 공식을 설정할 수 있습니다 ... 어떻게

=A1+A2+B6 

그리고

A1=2, A2=5 and B6=21. 

을 ..

=A1+A2+B6 

... to this ...

=2+5+21 

... 수동으로하지 않습니까? 나는 방법이 있다고 믿습니다.

감사합니다.

+3

[regex] R1C1 셀은 [Range.FormulaR1C1 속성] (https://msdn.microsoft.com/en-us/library/bb213527.aspx)에서 주소를 지정합니다. – Jeeped

답변

0

모든 수식 참조가 동일한 시트에있는 간단한 상황에서 작동해야합니다. DirectPrecedents 범위를 사용하지만 동일한 시트의 셀을 선행하는 데 한계가 있습니다. Sheet1

|      A      | 
--+---------------------------------------------+ 
1 | 2           | 
2 | 4           | 
3 | 6           | 
4 | =Sheet1!A3+(A1^Sheet1!A1)+Sheet1!A2/(A3+A2) | 
5 | =SUM(A1,A2,A3)/COUNT(A1,A2,A3)    | 

참고 명명 된 시트 접두사 셀을 포함하는 셀 참조의 혼합에 내가 가진 내 예에서

이.

는 그리고 나는이 VBA 코드를 사용

Option Explicit 

Sub Test() 
    PrintResolvedFormula Range("A4") 
    PrintResolvedFormula Range("A5") 
End Sub 

Sub PrintResolvedFormula(rng As Range) 

    If rng.HasFormula Then 

    Dim formula As String 
    formula = rng.FormulaR1C1 

    Dim cel As Range 
    For Each cel In rng.DirectPrecedents.Cells 
     formula = Replace(formula, cel.Worksheet.Name & "!", vbNullString) 
     formula = Replace(formula, cel.Address(False, False, xlR1C1, False, rng), cel.Text) 
    Next cel 

    Debug.Print formula 

    Else 

    Debug.Print rng.Value 

    End If 

End Sub 

을 그리고이 출력을 얻을 : 값으로 셀 참조를 해결입니다

=6+(2^2)+4/(6+4) 
=SUM(2,4,6)/COUNT(2,4,6) 

참고하지만 값 함수가 해결되지 않습니다. 개별 함수를 해결하려면 함수 문자열을 구분하고 Application.Evaluate을 사용하십시오.

관련 문제