[VBA] Giải PT bậc 2

Liên hệ QC

suncenputy

Thành viên mới
Tham gia
7/12/10
Bài viết
3
Được thích
0
Em viết macro giải phương trình bậc 2 thế này nhưng không biết có lỗi gì mà chạy không được. Xin chỉ giáo , thanks.

Public Function ptb2(a, b, c As Long)
Dim d, x1, x2, x As Integer
If a = 0 Then
MsgBox ("Wrong")
Else
d = b ^ 2 - 4 * a * c
End If
If d < 0 Then
MsgBox ("Phuong trinh vo nghiem")
Else
If d = 0 Then
x = -b / (2 * a)
ptb2 = "x =" & x
Else
If d > 0 Then
x1 = (-b + sqrt(d)) / (2 * a)
x2 = (-b - sqrt(d)) / (2 * a)
ptb2 = "co nghiem: " & x1 & " va " & x2
End If
End Function
 
1 Public Function ptb2(a, b, c As Long)
Dim d, x1, x2, x As Integer
3 If a = 0 Then
MsgBox ("Wrong")
5 Else
d = b ^ 2 - 4 * a * c
7 End If
If d < 0 Then
9 MsgBox ("Phuong trinh vo nghiem")
Else
11 If d = 0 Then
x = -b / (2 * a)
13 ptb2 = "x =" & x
Else
15 If d > 0 Then
x1 = (-b + sqrt(d)) / (2 * a)
17 x2 = (-b - sqrt(d)) / (2 * a)
ptb2 = "co nghiem: " & x1 & " va " & x2
19 End If
End Function
D1: C As Long là chưa chuẩn, cần là C As Double (đễ bao giờ cũng đúng cho tận mai sau)
D2: Cũng như vậy với biến x, nên là x As Double
D4: Msgbox "Fuong Trình Bac Nhát Có Nghiem Duy Nhát: " & CStr(-C/b)
(D9: MsgBox "Fuong Trình Có Nghiem Ao")
D18: nên là ptb2 = "co nghiem:" & Str(x1) & " và" & Str(x2)
Dòng lệnh 1 nên là: Public Function ptb2(a, b, c As Long) As String

Nếu là mới vô nghề VBA, mình khuyên bạn nên viết cho tường minh. Có vậy mới tiến xa 1 cách nhanh chóng được bạn à
--=0 --=0 --=0
 
Upvote 0
Em viết macro giải phương trình bậc 2 thế này nhưng không biết có lỗi gì mà chạy không được. Xin chỉ giáo , thanks.
Theo tôi, khi tạo một UDF bạn không nên cho Msgbox vào mà nên đưa nó vào kết quả luôn. Nếu bạn có nhiều cell sử dụng UDF này thì sẽ hiện ra nhiều Msgbox. Bất tiện và bạn không biết Msgbox nào là của cell nào.
 
Upvote 0
Em viết macro giải phương trình bậc 2 thế này nhưng không biết có lỗi gì mà chạy không được. Xin chỉ giáo , thanks.
Sai nhiều... ví dụ 1 cái: Trong VBA hổng có hàm SQRT (chỉ có SQR thôi)
Kết quả của hàm phải xài được vào việc gì khác chứ ---> Ra chuổi thì chỉ... nhìn mà thôi
 
Upvote 0
Web KT
Back
Top Bottom