2016-06-28 1 views
0

VBA를 사용하여 Excel에서 MonteCarlo 시뮬레이션을 실행하고 있지만 각 셀에 #Name? 오류 만 수신합니다. 이러한 셀 중 하나를 클릭하면 F2을 누른 다음 Return을 누르면 오류가 사라지고 값이 올바르게 계산됩니다. 여기서 뭐가 잘못 됐니? # 이름? VBA 코드가있는 셀의 오류

는 각각의 값을 계산하는 코드 라인 :

ActiveCell.Formula = "=Start_Rate * EXP(NORM.S.INV(RAND())* Standard_Deviation * (" & i & " ^1/2)) " 

을 그리고 전체 코드 (필요한 경우)입니다 :

Sub MC_Simulation() 

Dim i As Integer 
Dim k As Integer 
Dim StartCell As Range 
Dim start_row As Integer 
Dim start_column As Integer 

iterations = Worksheets("Run_MC").Range("MC_Simulations").Value 
Duration = Worksheets("Run_MC").Range("Duration").Value 
Mean = Worksheets("Run_MC").Range("Mean").Value 
Start_Rate = Worksheets("Run_MC").Range("Start_Rate").Value 
Standard_Deviation = Worksheets("Run_MC").Range("Standard_Deviation").Value 

start_row = 15 
start_column = 1 

For i = 1 To Duration 
    For k = 1 To iterations 

    Worksheets("Run_MC").Cells(start_row, start_column + i).Select 
    Selection.Value = i 
    Worksheets("Run_MC").Cells(start_row + k, start_column).Select 
    Selection.Value = k 
    Worksheets("Run_MC").Cells(start_row + k, start_column + i).Select 
    ActiveCell.Formula = "=Start_Rate * EXP(NORM.S.INV(RAND())* Standard_Deviation * (" & i & " ^1/2)) " 
    'Selection.Value 

    Next k 
Next i 

End Sub 
+0

수식 입력 줄에서 작동하고 코드에서 작동하지 않는 경우 현지화 된 버전의 Excel 및 sho가 있습니다. 코드에서 [FormulaLocal' (http://stackoverflow.com/q/26625383/11683)을 사용하거나 [영문 공식을 제공하십시오] (http://stackoverflow.com/a/25251099/11683). – GSerg

답변

0

당신은 인용 밖으로 VBA 변수를 취할 필요 :

ActiveCell.Formula = "=" & Start_Rate & "*EXP(NORM.S.INV(RAND())*" & Standard_Deviation & "*(" & i & "^1/2))" 
+0

'Start_Rate'와'Standard_Deviation'는 명명 된 범위로 정의됩니다. 있는 그대로 작동해야합니다. – GSerg