Các bạn giúp em sửa lỗi phần nội suy 1 chiều trong file bị lỗi Value! Em cám ơn! (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

ngoctan_q

Thành viên chính thức
Tham gia
15/8/07
Bài viết
52
Được thích
17
Em có bảng tính, nhưng hàm nội suy bị lỗi ko cho giá trị. Các bác giúp em với ạ, em ko rõ VBA copy vào mà nó ko chạy, dù đã enble macro rồi mà vẫn bị lỗi value.
Em xin chân thành cám ơn!
 

File đính kèm

Em có bảng tính, nhưng hàm nội suy bị lỗi ko cho giá trị. Các bác giúp em với ạ, em ko rõ VBA copy vào mà nó ko chạy, dù đã enble macro rồi mà vẫn bị lỗi value.
Em xin chân thành cám ơn!

Trong hàm "noisuy1"
sửa chỗ này
Mã:
For i = 1 To vungtra.Cells.Count
thành thế này xem sao
Mã:
For i = 1 To vungtra.Rows.Count
---

Có lẽ sửa thế này hợp lý hơn
Mã:
For i = 1 To vungtra.Rows.Count-1
 
Lần chỉnh sửa cuối:
Upvote 0
Em có bảng tính, nhưng hàm nội suy bị lỗi ko cho giá trị. Các bác giúp em với ạ, em ko rõ VBA copy vào mà nó ko chạy, dù đã enble macro rồi mà vẫn bị lỗi value.
Em xin chân thành cám ơn!

Bạn thêm Exit For vào vòng lặp như sau sẽ ra đúng

PHP:
Function noisuy1(vungtra As Range, X As Double, cot As Integer) As Double
Dim ktra As Boolean
Dim i As Integer
Dim x1 As Double, x2 As Double, y1 As Double, y2 As Double
    For i = 1 To vungtra.Cells.Count
        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(i, cot): y2 = vungtra.Cells(i + 1, cot)
            noisuy1 = (y2 - y1) * (X - x1) / (x2 - x1) + y1
            Exit For
        End If
    Next i
End Function
 
Upvote 0
Bạn thêm Exit For vào vòng lặp như sau sẽ ra đúng

PHP:
Function noisuy1(vungtra As Range, X As Double, cot As Integer) As Double
Dim ktra As Boolean
Dim i As Integer
Dim x1 As Double, x2 As Double, y1 As Double, y2 As Double
    For i = 1 To vungtra.Cells.Count
        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(i, cot): y2 = vungtra.Cells(i + 1, cot)
            noisuy1 = (y2 - y1) * (X - x1) / (x2 - x1) + y1
            Exit For
        End If
    Next i
End Function

Cái này nếu thay C29=48 sẽ cho kết quả là value.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom