Ðề: Mỗi tuần một hàm trong Excel!
Mình đã xem lại code của PMXD và nhận thấy thừa ra 1 đoạn ở đầu, bạn dùng thử xem sao:
Function TraBang2Chieu(ByVal GiaTriCot, ByVal GiaTriHang, VungChon As Range)
Dim i As Long, j As Long
Dim TangAnPha
Dim NoiSuy1 As Double, NoiSuy2 As Double
For i = 1 To UBound(VungChon.Value, 2)
If (GiaTriCot - VungChon(1, i)) * (GiaTriCot - VungChon(1, i + 1)) <= 0 Then
For j = 1 To UBound(VungChon.Value, 1) - 1
If (GiaTriHang - VungChon(j, 1)) * (GiaTriHang - VungChon(j + 1, 1)) <= 0 Then
TangAnPha = (VungChon(j, i + 1) - VungChon(j, i)) / (VungChon(1, i + 1) - VungChon(1, i))
NoiSuy1 = VungChon(j, i) + (GiaTriCot - VungChon(1, i)) * TangAnPha
TangAnPha = (VungChon(j + 1, i + 1) - VungChon(j + 1, i)) / (VungChon(1, i + 1) - VungChon(1, i))
NoiSuy2 = VungChon(j + 1, i) + (GiaTriCot - VungChon(1, i)) * TangAnPha
TangAnPha = (NoiSuy2 - NoiSuy1) / (VungChon(j + 1, 1) - VungChon(j, 1))
TraBang2Chieu = NoiSuy1 + (GiaTriHang - VungChon(j, 1)) * TangAnPha
GoTo Thoat:
End If
Next j
End If
Next i
Thoat:
End Function
Tuy nhiên mình nhận thấy cách tra bảng này chỉ thực hiện nội suy thì được thôi, chứ ngoại suy thì not OK.
QUẢNG CÁO ĐẦU TRANG
Collapse
Thông báo
Collapse
No announcement yet.
Mỗi tuần một hàm trong Excel!
Collapse
X
-
Ðề: Mỗi tuần một hàm trong Excel!
Bác PMXD hàm nội suy của bác gặp sự cố rồi (không biết có phải thế không!?). Mình nêu ra trường hợp nhé: khi bác nhập giá trị "Cot" là các số nằm trong cột đó (VD:cột là dãy số:0,1; 0,25; 0,5;0,75;1 thì nhập chính xác số có trong cột là 0,25) và khi nhập giá trị "Hang" là số không có trong Hàng đó (VD: Hàng có dãy 1;2;3;4 mà nhập số cần nội suy la 2,1) thì kết quả trả về 0. Đây là điều bất tiện trong phương pháp nội suy vì không đáp ứng tính bất kì của một hàm số nội suy. Mong Bác có câu trả lời giụp Nhân đây mình xin gửi lại file Bác đã post lên nhưng mình đã sửa giá trị tương ứng với trường hợp nêu trên để Bac tham khảo để giải quyết nhanh.Attached Files
Leave a comment:
-
Ðề: Mỗi tuần một hàm trong Excel!
Các bác cho em hỏi bên VB một chut (em mới bắt đầu học nên còn kém lắm,các bác thông cảm nhé)
1.Làm thế nào để xuất kết quả ra dưới dạng.txt ,dưới dạng.xls?
2.Có phải VB không thể tạo được cơ sở dữ liệu (Đơn giản như 1 bảng tra chẳng hạn) mà bắt buộc phải dùng Access không?Kết nối như thế nào?
Leave a comment:
-
-
Ðề: Mỗi tuần một hàm trong Excel!
Nguyên văn bởi PhanTuHuongTú ơi!
Anh rất cám ơn ông em. Nhưng anh muốn biết thuật toán của Smoothed line. Hình như nó cài theo dạng *.xla nên anh kô thể xem đc, em có cách naog giúp anh đc ko vẩy
Smooth line của Excel là dạng đồ thị bậc 3 đi qua các điểm kiểm soát, anh có thể xem nhiều dạng làm trơn khác trong các sách nói về Kỹ thuật đồ họa (Hermite, Bezier...). Em có 1 ít tài liệu nói về phần này, anh có thể tham khảo nhưng nó chưa thật chuẩn so với Smooth line của Excel.
Leave a comment:
-
Leave a comment:
-
Ðề: Mỗi tuần một hàm trong Excel!
PMXD thân mến
Tôi có đọc 2 hàm :Tra A,B,D và tính bản sàn
Thế thì phức tạp quá.Hôm sau rãnh tôi post lên các bạn cho ý kiến nhé:
1/ Hàm tra A,B,D toằn bộ có công thức rồi chỉ dùng excel thông thường là tính thẳng ra A,B,D và Rtc luôn
2/ Bản sàn thì dùng một chút công thức nội suy thì ra luôn nội lực
Đâu cần phức tạp đến thế
Leave a comment:
-
Ðề: Mỗi tuần một hàm trong Excel!
chào các bác!
Em rất muốn học VBA cho thằng Excel này
thấy các bác post lên nhiều nhiều em thật sự rất vui
Em có một thỉnh cầu nho nhỏ này:
Đằng nào các bác cũng dành thời gian viết bài và post lên, vậy trong khi viết hàm nào đó các bác có thể giải thích rõ hơn một chút được không, để cho anh em nào (như em chẳng hạn) muốn đọc code cũng hiểu được nhiều, rất cảm ơn các bác
Leave a comment:
-
Ðề: Mỗi tuần một hàm trong Excel!
Nguyên văn bởi ttkhXin chỉ giúp. Tôi gặp vấn đề sau : Khi tạo một macro
Ví dụ
A1 =6
B1 = 7
C1 = 8
D1 = A1+B1
ENTER
Thì ta có macro
Sub Macro1()
'
' Macro1 Macro
' Macro recorded 9/2/2005 by user02
'
'
ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-1]"
Range("D2").Select
End Sub
Vậy thì bằng cách nào để cho "Range("D2").Select "không phải là D2, vì khi thực hiện macro này thì kết thúc lệnh ô hiện hành là ô D2 ( cho dù vị trí thực hiện nào đi nữa).
Có nghĩa là ta phải thay đổi dòng Range("D2").Select "như thế nào để nó không phải là địa chỉ tuyệt đối như vậy. Ví dụ thực hiện lệnh ở ô D3 (sử dụng macro trên )thì kết thúc lệnh ô hiện hành ở D4, chứ không phải là D2
1- Bỏ dòng sau đây đi Range("D2").Select
2- Thay giá trị "D2" bằng giá trị khác qui định trong biến
Ví dụ:
Dim AddCell as long
AddCell=3
Range("D" & AddCell ).Select
Chúc bạn thành công
Leave a comment:
-
Ðề: Mỗi tuần một hàm trong Excel!
cam on cac huynh da post len cac ham excel nhe,tui em hoc hoi duoc nhieu lam,
Leave a comment:
-
Ðề: Mỗi tuần một hàm trong Excel!
http://www.elcomsoft.com/prs.html
pass: AOPRP-COMM-XXDNN-27747-BHJGY-55343
Leave a comment:
-
Ðề: Mỗi tuần một hàm trong Excel!
Nguyên văn bởi shinichibác ducxd bẻ khóa bằng cài gì vậy , chỉ giúp em với
chao shinichi. Be khoa Excel (Unprotect Sheet and VBA Password) không gì tốt hơn Advanced Office Password Recovery (AOPR) đâu. Hôm vừa rồi tôi ra dơwnload về dùng rất tốt. Hiện tại tôi không mang theo chương trình đó ở đây. Để khi nào đó tôi sẽ upload cho các bạn dùng thử nhé.
Leave a comment:
-
Ðề: Mỗi tuần một hàm trong Excel!
Tôi không trả lời trực tiếp vấn đề của bạn(thực tình tôi ko thích....viết macro Excel), tôi nói qua về mô hình Excel Object Mode để bạn tham khảo nha:
- Trong 1 thể hiên của Excel(một Excel.Application) thì ActiveCell là duy nhất tại một thời điểm(nó có thể ở Workbook nào đó, Sheet nào đó...) để nhận thông tin nhập vào từ bàn phím của một thời điểm.
- Các đối tượng như worksheet, activecell, row, column....đều có thể chuyển kiểu trực tiếp sang Excel.Range.
- Cách sử dụng địa chỉ tương đối tôi hay dùng là: Đánh địa chỉ dựa trên ActiveCell hiện tại; hoặc sử dụng Offset(i, j).
Tôi minh họa một ví dụ:
Excel.Range rng1 = Excel.Application.ActiveCell;
Excel.Range rng2 = rng1.Cells[2,3];
//Trong ví dụ trên thì rng1 là ActiveCell hiện tại (phụ thuộc vào người sử dụng và người lập trình...) và nó sẽ có địa chỉ là [1, 1] trong cách đánh địa chỉ tương đối trên và rng2 sẽ là Cells[2, 3] dựa trên mốc [1, 1] ta vừa đánh dấu.
Leave a comment:
-
Ðề: Mỗi tuần một hàm trong Excel!
Xin chỉ giúp. Tôi gặp vấn đề sau : Khi tạo một macro
Ví dụ
A1 =6
B1 = 7
C1 = 8
D1 = A1+B1
ENTER
Thì ta có macro
Sub Macro1()
'
' Macro1 Macro
' Macro recorded 9/2/2005 by user02
'
'
ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-1]"
Range("D2").Select
End Sub
Vậy thì bằng cách nào để cho "Range("D2").Select "không phải là D2, vì khi thực hiện macro này thì kết thúc lệnh ô hiện hành là ô D2 ( cho dù vị trí thực hiện nào đi nữa).
Có nghĩa là ta phải thay đổi dòng Range("D2").Select "như thế nào để nó không phải là địa chỉ tuyệt đối như vậy. Ví dụ thực hiện lệnh ở ô D3 (sử dụng macro trên )thì kết thúc lệnh ô hiện hành ở D4, chứ không phải là D2
Leave a comment:
-
Ðề: Mỗi tuần một hàm trong Excel!
to nvd dg
neu ban viet cac ham do trong VBA cua excel thi ban chi can ghi lai o dang *.xla
sau do ban addin vao excel thi sau nay ban co the dung ham do chotat ca cac wb nhu ban mong muon.
Leave a comment:
Quảng cáo cuối trang
Collapse
Leave a comment: