为什么在运行elseif语句时收到types不匹配错误

所以我试图运行下面的代码,但收到“types不匹配错误”行ElseIf Cells(x, 1) <> "" And Cells(x, 2) <> "" And Cells(x, 15).Value <= 0 Then ,我猜这是和if语句在fornext语句中没有正确的嵌套for ,但是它们看起来都很好,我花了好几个小时来尝试debugging,但没有成功。可以告诉我,我的代码出了什么问题?

 Dim x As Integer For x = 4 To 100 If Cells(x, 1) <> "" And Cells(x, 2) <> "" And Cells(x, 6).Value <= 0 Then Cells(x, 16).Value = 6 Cells(x, 17).Value = -0.3179688 ElseIf Cells(x, 1) <> "" And Cells(x, 2) <> "" And Cells(x, 15).Value <= 0 Then '(*Received error for this line) Cells(x, 16).Value = 1 Cells(x, 17).Value = 0.6820312 ElseIf Cells(x, 5) = "" or Cells(x, 6) <> "" or Cells(x, 7) <> "" Then '(*Still Received error for this line) Cells(x, 16).Value = "" Cells(x, 17).Value = "" ElseIf Cells(x, 1).Value = "A. Agriculture, forestry and fishing" Then Select Case LCase(Cells(x, 2).Value) Case "all", "id", "sg" Select Case Cells(x, 15).Value Case Is > 4 Cells(x, 16).Value = 5 Cells(x, 17).Value = -0.2405524 Case 2.01 To 4 Cells(x, 16).Value = 4 Cells(x, 17).Value = 0.0223717 Case 1.01 To 2 Cells(x, 16).Value = 3 Cells(x, 17).Value = 0.112231 Case 0.01 To 1 Cells(x, 16).Value = 2 Cells(x, 17).Value = 0.5928195 End Select Case "my", "th" Select Case Cells(x, 15).Value Case Is > 4.5 Cells(x, 16).Value = 5 Cells(x, 17).Value = -0.2405524 Case 2.01 To 4.5 Cells(x, 16).Value = 4 Cells(x, 17).Value = 0.0223717 Case 1.01 To 2 Cells(x, 16).Value = 3 Cells(x, 17).Value = 0.112231 Case 0.01 To 1 Cells(x, 16).Value = 2 Cells(x, 17).Value = 0.5928195 End Select Case "" Cells(x, 16).Value = "" Cells(x, 17).Value = "" End Select End if Next x End Sub 

编辑我的代码,它的工作原理。

 Dim x As Integer For x = 4 To 100 If Cells(x, 2).Value = "" Or Cells(x, 3).Value = "" Or Cells(x, 5).Value = "" Or Cells(x, 6).Value = "" Or Cells(x, 7).Value = "" Then Cells(x, 17).Value = "" Cells(x, 18).Value = "" ElseIf Cells(x, 7).Value <= 0 Then Cells(x, 17).Value = 6 Cells(x, 18).Value = -0.3179688 ElseIf Cells(x, 16).Value <= 0 Then Cells(x, 17).Value = 1 Cells(x, 18).Value = 0.6820312 ElseIf Cells(x, 2).Value = "A. Agriculture, forestry and fishing" Then Select Case LCase(Cells(x, 3).Value) Case "all", "id", "sg" Select Case Cells(x, 16).Value Case Is > 4 Cells(x, 17).Value = 5 Cells(x, 18).Value = -0.2405524 Case 2.01 To 4 Cells(x, 17).Value = 4 Cells(x, 18).Value = 0.0223717 Case 1.01 To 2 Cells(x, 17).Value = 3 Cells(x, 18).Value = 0.112231 Case 0.01 To 1 Cells(x, 17).Value = 2 Cells(x, 18).Value = 0.5928195 End Select Case "my", "th" Select Case Cells(x, 16).Value Case Is > 4.5 Cells(x, 17).Value = 5 Cells(x, 18).Value = -0.2405524 Case 2.01 To 4.5 Cells(x, 17).Value = 4 Cells(x, 18).Value = 0.0223717 Case 1.01 To 2 Cells(x, 17).Value = 3 Cells(x, 18).Value = 0.112231 Case 0.01 To 1 Cells(x, 17).Value = 2 Cells(x, 18).Value = 0.5928195 End Select End Select End if Next x