Em có viết đoạn code tra bảng nội suy bảng 2 chiều nhưng không hiểu sao nó không chạy nữa. Cái bảng này của e nó lại khác kiểu so với các ví dụ đã có ở diến đàn. Mong các bác kiểm tra giúp em. Em xin chân thành cảm ơn. Chúc các bác và gia đình luôn mạnh khỏe.
Đoạn Code như sau:
Function CalE(vungtra As Range, R As Double, V As Double) As Double
    'Ham noi suy gia tri e tu R va V cho truoc
    Dim ktra As Boolean
    Dim i As Integer
    Dim r1 As Double, r2 As Double, e1 As Double, e2 As Double
    For i = 1 To vungtra.Cells.Count
     kiemtra = False
     Select Case V
     Case V = 20
     If vungtra.Cells(i, 2) >= R And vungtra.Cells(i + 1, 2) <= R Then
      r1 = vungtra.Cells(i, 2): r2 = vungtra.Cells(i + 1, 2)
      e1 = vungtra.Cells(i, 1): e2 = vungtra.Cells(i + 1, 1)
      CalE = (e2 - e1) * (r1 - R) / (r1 - r2) + e1
      ktra = True
     End If
    Next i
    If ktra = False Then
     MsgBox "gia tri can tim ko nam trong bang tra", vbInformation
     Exit Function
    End If
    Case V = 30
     If vungtra.Cells(i, 3) >= R And vungtra.Cells(i + 1, 3) <= R Then
      r1 = vungtra.Cells(i, 3): r2 = vungtra.Cells(i + 1, 3)
      e1 = vungtra.Cells(i, 1): e2 = vungtra.Cells(i + 1, 1)
      CalE = (e2 - e1) * (r1 - R) / (r1 - r2) + e1
      ktra = True
     End If
    Next i
    If ktra = False Then
     MsgBox "gia tri can tim ko nam trong bang tra", vbInformation
     Exit Function
    End If
    Case V = 40
     If vungtra.Cells(i, 4) >= R And vungtra.Cells(i + 1, 4) <= R Then
      r1 = vungtra.Cells(i, 4): r2 = vungtra.Cells(i + 1, 4)
      e1 = vungtra.Cells(i, 1): e2 = vungtra.Cells(i + 1, 1)
      CalE = (e2 - e1) * (r1 - R) / (r1 - r2) + e1
      ktra = True
     End If
    Next i
    If ktra = False Then
     MsgBox "gia tri can tim ko nam trong bang tra", vbInformation
     Exit Function
    End If
    Case V = 50
     If vungtra.Cells(i, 5) >= R And vungtra.Cells(i + 1, 5) <= R Then
      r1 = vungtra.Cells(i, 5): r2 = vungtra.Cells(i + 1, 5)
      e1 = vungtra.Cells(i, 1): e2 = vungtra.Cells(i + 1, 1)
      CalE = (e2 - e1) * (r1 - R) / (r1 - r2) + e1
      ktra = True
     End If
    Next i
    If ktra = False Then
     MsgBox "gia tri can tim ko nam trong bang tra", vbInformation
     Exit Function
    End If
    Case V = 60
     If vungtra.Cells(i, 6) >= R And vungtra.Cells(i + 1, 6) <= R Then
      r1 = vungtra.Cells(i, 6): r2 = vungtra.Cells(i + 1, 6)
      e1 = vungtra.Cells(i, 1): e2 = vungtra.Cells(i + 1, 1)
      CalE = (e2 - e1) * (r1 - R) / (r1 - r2) + e1
      ktra = True
     End If
    Next i
    If ktra = False Then
     MsgBox "gia tri can tim ko nam trong bang tra", vbInformation
     Exit Function
    End If
    Case V = 70
     If vungtra.Cells(i, 7) >= R And vungtra.Cells(i + 1, 7) <= R Then
      r1 = vungtra.Cells(i, 7): r2 = vungtra.Cells(i + 1, 7)
      e1 = vungtra.Cells(i, 1): e2 = vungtra.Cells(i + 1, 1)
      CalE = (e2 - e1) * (r1 - R) / (r1 - r2) + e1
      ktra = True
     End If
    Next i
    If ktra = False Then
     MsgBox "gia tri can tim ko nam trong bang tra", vbInformation
     Exit Function
    End If
     Case V = 80
     If vungtra.Cells(i, 8) >= R And vungtra.Cells(i + 1, 8) <= R Then
      r1 = vungtra.Cells(i, 8): r2 = vungtra.Cells(i + 1, 8)
      e1 = vungtra.Cells(i, 1): e2 = vungtra.Cells(i + 1, 1)
      CalE = (e2 - e1) * (r1 - R) / (r1 - r2) + e1
      ktra = True
     End If
    Next i
    If ktra = False Then
     MsgBox "gia tri can tim ko nam trong bang tra", vbInformation
     Exit Function
    End If
    Case V = 90
     If vungtra.Cells(i, 9) >= R And vungtra.Cells(i + 1, 9) <= R Then
      r1 = vungtra.Cells(i, 9): r2 = vungtra.Cells(i + 1, 9)
      e1 = vungtra.Cells(i, 1): e2 = vungtra.Cells(i + 1, 1)
      CalE = (e2 - e1) * (r1 - R) / (r1 - r2) + e1
      ktra = True
     End If
    Next i
    If ktra = False Then
     MsgBox "gia tri can tim ko nam trong bang tra", vbInformation
     Exit Function
    End If
    Case V = 100
     If vungtra.Cells(i, 10) >= R And vungtra.Cells(i + 1, 10) <= R Then
      r1 = vungtra.Cells(i, 10): r2 = vungtra.Cells(i + 1, 10)
      e1 = vungtra.Cells(i, 1): e2 = vungtra.Cells(i + 1, 1)
      CalE = (e2 - e1) * (r1 - R) / (r1 - r2) + e1
      ktra = True
     End If
    Next i
    If ktra = False Then
     MsgBox "gia tri can tim ko nam trong bang tra", vbInformation
     Exit Function
    End If
    Case V = 110
     If vungtra.Cells(i, 11) >= R And vungtra.Cells(i + 1, 11) <= R Then
      r1 = vungtra.Cells(i, 11): r2 = vungtra.Cells(i + 1, 11)
      e1 = vungtra.Cells(i, 1): e2 = vungtra.Cells(i + 1, 1)
      CalE = (e2 - e1) * (r1 - R) / (r1 - r2) + e1
      ktra = True
     End If
    Next i
    If ktra = False Then
     MsgBox "gia tri can tim ko nam trong bang tra", vbInformation
     Exit Function
    End If
    Case V = 120
     If vungtra.Cells(i, 12) >= R And vungtra.Cells(i + 1, 12) <= R Then
      r1 = vungtra.Cells(i, 12): r2 = vungtra.Cells(i + 1, 12)
      e1 = vungtra.Cells(i, 1): e2 = vungtra.Cells(i + 1, 1)
      CalE = (e2 - e1) * (r1 - R) / (r1 - r2) + e1
      ktra = True
     End If
    Next i
    If ktra = False Then
     MsgBox "gia tri can tim ko nam trong bang tra", vbInformation
     Exit Function
    End If
     Case V = 130
     If vungtra.Cells(i, 13) >= R And vungtra.Cells(i + 1, 13) <= R Then
      r1 = vungtra.Cells(i, 13): r2 = vungtra.Cells(i + 1, 13)
      e1 = vungtra.Cells(i, 1): e2 = vungtra.Cells(i + 1, 1)
      CalE = (e2 - e1) * (r1 - R) / (r1 - r2) + e1
      ktra = True
     End If
    Next i
    If ktra = False Then
     MsgBox "gia tri can tim ko nam trong bang tra", vbInformation
     Exit Function
    End If
    End Select
End Function