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