Tìm lỗi

Liên hệ QC

bucthucuoi

Thành viên mới
Tham gia
14/9/06
Bài viết
14
Được thích
9
Nghề nghiệp
SV
Tự function tra bảng 2 chiều của thầy PTH em đã chuyển sang dưới dạng Sub.Tuy nhiên ko hiểu sao khi chạy sub chỉ đúng với với giá trị X<8.Em ko biết sai sót chỗ nào.Rất mong mọi người chỉ giúp(chạy function thì kết quả chính xác)
 

File đính kèm

  • vietSub.rar
    13 KB · Đọc: 29
file nội suy

bạn load về nhé
 

File đính kèm

  • vietSub.xls
    50 KB · Đọc: 47
Chỉnh sửa lần cuối bởi điều hành viên:
Cái đầu tiên của em sai là giá trị Y nội suy ngoài vùng. (Y=1.6 <2).
Code sửa lại như sau:
Mã:
Sub Noisuy2chieu1()
    Dim SoX, SoY As Single
    Dim i, j As Integer
    Worksheets("bangtra").Select
    Range("A2:H15").Select ' Có thể tùy biến bằng cách dùng InputBox
    Set X = Selection
        cao = X.Rows.Count 'Xác định số hàng
        Rong = X.Columns.Count 'Xác định số cột
    SoX = Sheets("nhapso").Range("A2").Value
    SoY = Sheets("nhapso").Range("B2").Value
    Dim A1, A2, B1, B2, Y1, Y2, Tim As Single 'Các điểm chặn xung quanh điểm tính nội suy
        For i = 2 To cao + 1
            If Selection(i, 1) > SoX Then
                n = i
                    For j = 2 To Rong + 1
                        If X(1, j) > SoY Then
                            m = j
                            B1 = X(n - 1, m)
                            B2 = X(n, m)
                            A1 = X(n - 1, m - 1)
                            A2 = X(n, m - 1)
                            Y1 = (SoY - X(1, m - 1)) * (B1 - A1) / (X(1, m) - X(1, m - 1)) + A1
                            Y2 = (SoY - X(1, m - 1)) * (B2 - A2) / (X(1, m) - X(1, m - 1)) + A2
                            Tim = (SoX - X(n - 1, 1)) * (Y2 - Y1) / (X(n, 1) - X(n - 1, 1)) + Y1
                            Exit For
                        End If
                    Next j
                        Exit For
             End If
         Next i
                Sheets("ketqua").Select
                Range("B2").Value = Tim
End Sub

Chúc em thành công! :-=
 
Theo tôi, em cứ lập hàm tính thông thường, sau đó lập chương trình con (Sub) để lấy giá trị hàm đó thì hay hơn.
 
Web KT
Back
Top Bottom