[英]Run time error 1004. Method 'Range' object '_Global' _ failed
When I run my program only for one line (instead of variable i, put any other number) of the worksheet, there's no problem. 当我仅对工作表的一行(而不是变量i,输入其他任何数字)运行程序时,就没有问题。 But when I tried to do it for other lines using a FOR loop, the error message appears
Run time error 1004. Method 'Range' object '_Global' _ failed
. 但是,当我尝试使用FOR循环对其他行执行此操作时,错误消息出现
Run time error 1004. Method 'Range' object '_Global' _ failed
。 The debugger always highlights the 14th line. 调试器始终突出显示第14行。 But I don't know if I have to fix just this line.
但是我不知道我是否必须解决这一问题。 Hope anyone can help me...my code is below.
希望任何人都能帮助我...我的代码在下面。
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
您还需要在所有范围调用之前添加一个句点
.Range("F" & i).Value
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.