2013-06-03 7 views
0

워크 시트의 한 줄 (변수 i 대신 다른 숫자 입력) 대신 프로그램을 실행할 때 아무런 문제가 없습니다. 그러나 FOR 회신을 사용하여 다른 줄에서 작업하려고하면 Run time error 1004. Method 'Range' object '_Global' _ failed 오류 메시지가 나타납니다. 디버거는 항상 14 번째 줄을 강조 표시합니다. 하지만이 줄을 고쳐야할지 모르겠습니다. 누구든지 나를 도울 수 있기를 바랍니다 ... 내 코드는 아래에 있습니다.런타임 오류 1004. 메서드 'Range'object '_Global'_이 (가) 실패했습니다.

Sub depth() 
    Dim VAR1 As Double 
    Dim VAR2 As Double 
    Dim VAR3 As Double 
    Dim finalDepth As Double 
    Dim i As Integer 

    ' Calculation of depth when soil temperature is zero. Calculation 
    ' was made considering linear change of temperature between 2 values 

    With ThisWorkbook.Worksheets("sheet1") 
     For i = 2 To 30547 

      ' (PART HIGHLIGHTED BY DEBUGGER) 

      If Range("Fi").Value > 0 And _ 
       Range("Gi").Value > 0 And _ 
       Range("Hi").Value > 0 And _ 
       Range("Ii").Value > 0 And _ 
       Range("Ji").Value > 0 And _ 
       Range("Ki").Value > 0 And _ 
       Range("Li").Value > 0 And _ 
       Range("Mi").Value > 0 And _ 
       Range("Ni").Value > 0 And _ 
       Range("Oi").Value > 0 And _ 
       Range("Pi").Value > 0 Or _ 
       Range("Fi").Value < 0 And _ 
       Range("Gi").Value < 0 And _ 
       Range("Hi").Value < 0 And _ 
       Range("Ii").Value < 0 And _ 
       Range("Ji").Value < 0 And _ 
       Range("Ki").Value < 0 And _ 
       Range("Li").Value < 0 And _ 
       Range("Mi").Value < 0 And _ 
       Range("Ni").Value < 0 And _ 
       Range("Oi").Value < 0 And _ 
       Range("Pi").Value < 0 Then 

       Range("Ri").Value = 0 

      ' Calculation of depth when temperature is zero for each column on one row 

      ElseIf (Range("Fi").Value > 0 And Range("Gi").Value < 0) Then 
       VAR1 = (Range("Fi") - Range("Gi")) 
       VAR2 = VAR1/(Range("G1") - Range("F1")) 
       VAR3 = Range("Fi")/VAR2 
       finalDepth = Range("F1") + VAR3 
       Range("Ri").Value = finalDepth 

      ' Columns g and h 

      ElseIf (Range("Gi").Value > 0 And Range("Hi").Value < 0) Then 
       VAR1 = (Range("Gi") - Range("Hi")) 
       VAR2 = VAR1/(Range("H1") - Range("G1")) 
       VAR3 = Range("Gi")/VAR2 
       finalDepth = Range("G1") + VAR3 
       Range("Ri").Value = finalDepth 

      ' Columns h and i 

      ElseIf (Range("Hi").Value > 0 And Range("Ii").Value < 0) Then 
       VAR1 = (Range("Hi") - Range("Ii")) 
       VAR2 = VAR1/(Range("I1") - Range("H1")) 
       VAR3 = Range("Hi")/VAR2 
       finalDepth = Range("H1") + VAR3 
       Range("Ri").Value = finalDepth 

      ' Columns i and j 

      ElseIf (Range("Ii").Value > 0 And Range("Ji").Value < 0) Then 
       VAR1 = (Range("Ii") - Range("Ji")) 
       VAR2 = VAR1/(Range("J1") - Range("I1")) 
       VAR3 = Range("Ii")/VAR2 
       finalDepth = Range("I1") + VAR3 
       Range("Ri").Value = finalDepth 

      ' Columns j and k 

      ElseIf (Range("Ji").Value > 0 And Range("Ki").Value < 0) Then 
       VAR1 = (Range("Ji") - Range("Ki")) 
       VAR2 = VAR1/(Range("K1") - Range("J1")) 
       VAR3 = Range("Ji")/VAR2 
       finalDepth = Range("J1") + VAR3 
       Range("Ri").Value = finalDepth 

      ' Columns k and l 

      ElseIf (Range("Ki").Value > 0 And Range("Li").Value < 0) Then 
       VAR1 = (Range("Ki") - Range("Li")) 
       VAR2 = VAR1/(Range("L1") - Range("K1")) 
       VAR3 = Range("Ki")/VAR2 
       finalDepth = Range("K1") + VAR3 
       Range("Ri").Value = finalDepth 

      ' Columns l and m 

      ElseIf (Range("Li").Value > 0 And Range("Mi").Value < 0) Then 
       VAR1 = (Range("Li") - Range("Mi")) 
       VAR2 = VAR1/(Range("M1") - Range("L1")) 
       VAR3 = Range("Li")/VAR2 
       finalDepth = Range("L1") + VAR3 
       Range("Ri").Value = finalDepth 

      ' Columns m and n 

      ElseIf (Range("Mi").Value > 0 And Range("Ni").Value < 0) Then 
       VAR1 = (Range("Mi") - Range("Ni")) 
       VAR2 = VAR1/(Range("N1") - Range("M1")) 
       VAR3 = Range("Mi")/VAR2 
       finalDepth = Range("M1") + VAR3 
       Range("Ri").Value = finalDepth 

      ' Columns n and o 

      ElseIf (Range("Ni").Value > 0 And Range("Oi").Value < 0) Then 
       VAR1 = (Range("Ni") - Range("Oi")) 
       VAR2 = VAR1/(Range("O1") - Range("N1")) 
       VAR3 = Range("Ni")/VAR2 
       finalDepth = Range("N1") + VAR3 
       Range("Ri").Value = finalDepth 

      ' Column o and p 

      ElseIf (Range("Oi").Value > 0 And Range("Pi").Value < 0) Then 
       VAR1 = (Range("Oi") - Range("Pi")) 
       VAR2 = VAR1/(Range("P1") - Range("O1")) 
       VAR3 = Range("Oi")/VAR2 
       finalDepth = Range("O1") + VAR3 
       Range("Ri").Value = finalDepth 
      End If 
     Next i 
    End With 
End Sub 
+1

'마 범위 ("F"& I) .Value' 등 –

+0

를 호출하기 전에 기간을 추가 ... 그리고 괄호를 추가 할 필요가)'를 테스트합니다. –

+0

감사합니다! – user2448581

답변

0

는 또한 (`모든 범위

.Range("F" & i).Value 
관련 문제