khanhduydang
Thành viên mới

- Tham gia
- 19/10/08
- Bài viết
- 8
- Được thích
- 2
Cho mình hỏi ko bít lỗi gì trong đoạn mã bên dưới mà khi số cột lớn hơn 7 cột thì không tra được giá trị nội suy 2 chiều (lỗi #Value)
Xin giúp đỡ mình sửa lại cho hoàn chỉnh. Cám ơn mọi người trước.
Xin giúp đỡ mình sửa lại cho hoàn chỉnh. Cám ơn mọi người trước.
Mã:
Function NoiSuy2(vungtra As Range, X As Double, Y As Double) As Double
'ham noi suy 2 chieu
Dim ktra As Boolean
Dim i As Integer, j As Integer
Dim x1 As Double, x2 As Double, y1 As Double, y2 As Double
Dim a11 As Double, a12 As Double, a21 As Double, a22 As Double
Dim t1 As Double, t2 As Double
For j = 2 To vungtra.Cells.Count
If vungtra.Cells(1, j) <= Y And vungtra.Cells(1, j + 1) >= Y Then
For i = 2 To vungtra.Cells.Count
ktra = False
If vungtra.Cells(i, 1) <= X And vungtra.Cells(i + 1, 1) >= X Then
x1 = vungtra.Cells(i, 1): x2 = vungtra.Cells(i + 1, 1)
y1 = vungtra.Cells(1, j): y2 = vungtra.Cells(1, j + 1)
a11 = vungtra.Cells(i, j): a12 = vungtra.Cells(i, j + 1)
a21 = vungtra.Cells(i + 1, j): a22 = vungtra.Cells(i + 1, j + 1)
t1 = (a12 - a11) * (Y - y1) / (y2 - y1) + a11
t2 = (a22 - a21) * (Y - y1) / (y2 - y1) + a21
NoiSuy2 = (t2 - t1) * (X - x1) / (x2 - x1) + t1
End If
Next i
ktra = True
End If
Next j
If ktra = False Then
MsgBox "gia tri can tim ko nam trong bang tra", vbInformation
Exit Function
End If
End Function