ai giúp e viết code tra bảng nội suy có 3 yếu tố với

Liên hệ QC

keentwo

Thành viên thường trực
Tham gia
14/3/10
Bài viết
211
Được thích
185
Nghề nghiệp
SV DHXD
e có 1 file như sau.
a(c) nào có thể viết code nội suy cho e với.
bản chất vẫn là nội suy 1 chiều.nhưng e chưa thành thạo lắm nên vẫn chưa viết được+-+-+-+
 

File đính kèm

  • ham INDEX.xls
    34 KB · Đọc: 53
gửi anh ChanhTQ@

(2) File KQSX là file đánh đề, nên tác giả không có í định fổ biến hay cổ súy, chắc vậy.

(3) Tô màu bằng chuột bình thường mà. Có fải tô bằng macro hay CF đâu mà bạn!. . .

Thân ái!
--=0--=0 e không để ý là file KQSX lại có thể đánh đề cơ à.--=0 thảm nào nó bị khoá.nhưng e chỉ định biết code thôi.không có ý tưởng đánh đề --=0
cho e hỏi a ChanhTQ@ tai sao khi khai báo a đã khai
Dim Col As Byte
lúc sau khi dùng
Set RgNg = VungTra.Cells(1, 1).Resize(, Col - 1)
e tưởng dang byte là từ 0-255 thì tại sao lại là Col - 1 nhẽ ra file là Col + 1 vì byte chạy từ 0 còn cỡ ma trận lại chạy từ 1 cơ mà.
không biết e hiểu thế đúng không?
 
Upvote 0
(1) Nguyên thể nó là vầy:

PHP:
Col = VungTra.Columns.Count:                Rws = VungTra.Rows.Count
 Set RgNg = VungTra.Cells(1, 1).Resize(, Col - 1)

Ở dòng lệnh đầu, Col được gán là số cột trong VungTra;
Nhưng ta thấy Name VungTra gồm cả cột đầu tiên chứa Tsd; Muốn bỏ đi, không xét đến nó nên ta -1;
Thật ra bên rìa fải của VungTra là cột các ô trống thì không trừ đi 1 cũng chỉ làm chậm đi tốc độ truy xuất 1 tí xíu mà thôi

(2) Nếu muốn xem code thì bạn sẽ được gởi code trong tin nhắn riêng!
 
Upvote 0
Nhờ các bác giúp đỡ!

Lập hàm tự tạo giúp nội suy với 3 điều kiện???
Nhờ các anh giúp đỡ giải quyết bài toán nôi suy sau:
Cho trước các giá trị: Bc, m, H0: giả sử: Bc = 175, m = 10, H0 = 10.5;
Hãy lập hàm tự tạo kiểu Function(Bc,m,H0) để xác định Vth khi biết 3 giá trị trên.
Cụ thể xem trong file đính kèm.

Tôi đã áp dụng cách của các anh là dùng các hàm tự tạo trên nhưng vẫn chưa được.
Chắc bởi vì trong ví dụ của anh keentwo, vùng mưa của anh là tương ứng với chiều rộng kênh của tôi.
nhưng khác là chiều rộng kênh có thể là 175 trong khi trong bảng tra chỉ có: 150 và 200, còn vùng mưa thì chỉ là 1 hoặc 2 hoặc 3... như vậy với kiến thức VBA hạn chế tôi sẽ tách ra làm nhiều bảng mỗi bảng là tương ứng một vùng mưa, dùng hàm If với điều kiện là vùng mưa và áp dụng hàm nội suy 2 chiều do nhiều người đã lập trên diễn đàn là OK, nhưng với trường hợp của tôi thì không tách được.
Nhờ các anh nghiên cứu giải quyết giúp!



Thực ra tôi đã viết bài này bên box: Excel và kỹ thuật (vì chưa biết có topic này), mong admin group thông cảm!
http://www.giaiphapexcel.com/forum/showthread.php?44865-Lập-hàm-tự-tạo-giúp-nội-suy-với-3-điều-kiện
 

File đính kèm

  • Bang tra Vth_MCFull.xls
    22.5 KB · Đọc: 21
Upvote 0
Bạn kiểm theo file đính kèm & cho biết kết quả

PHP:
Option Explicit
Function NS2GPEn(VungTra As Range, Mai As Double, TocDo As Double, Size As Double)
' Ham Noi Suy 2 Chieu Voi 3 ham So:'
 Dim Rws As Long, Col As Byte:                      Const SoMai = 4
 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
 Dim Rg0 As Range, sRng As Range, rMai As Range
 Dim WF As Object, ClsX As Range, ClsY As Range
 
 Rws = VungTra.Rows.Count:                          Col = VungTra.Columns.Count
 Set WF = Application.WorksheetFunction:            Set Rg0 = VungTra.Cells(1, 1)
 NS2GPEn = WF.Lookup(Size, Rg0.Resize(Rws))
 Set sRng = Rg0.Resize(Rws).Find(NS2GPEn, , xlFormulas, xlWhole)
 If Not sRng Is Nothing Then
    Set rMai = sRng.Offset(, 1).Resize(SoMai)
    x1 = WF.Lookup(Mai, rMai)
    Set ClsX = rMai.Find(x1):                       Rws = ClsX.Row
    x2 = ClsX.Offset(1).Value
 Else
    NS2GPEn = "Chieu Rong Kenh":                    Exit Function
 End If
 y1 = WF.Lookup(TocDo, Rg0.Resize(, Col))
 Set ClsY = Rg0.Resize(, Col).Find(y1)
 y2 = ClsY.Offset(, 1).Value:                       Col = ClsY.Column
 
 a11 = Cells(Rws, Col):                             a22 = Cells(Rws + 1, Col + 1)
 a12 = Cells(Rws, Col + 1):                         a21 = Cells(Rws + 1, Col)
 t1 = (a12 - a11) * (TocDo - y1) / (y2 - y1) + a11
 t2 = (a22 - a21) * (TocDo - y1) / (y2 - y1) + a21
 NS2GPEn = (t2 - t1) * (Mai - x1) / (x2 - x1) + t1

End Function
 

File đính kèm

  • GPE.rar
    15.7 KB · Đọc: 46
Upvote 0
Web KT
Back
Top Bottom