Giúp em hoàn thiện code giải phương trình bậc 2 (1 người xem)

  • Thread starter Thread starter mondays
  • Ngày gửi Ngày gửi
Liên hệ QC

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

mondays

Thành viên mới
Tham gia
26/10/12
Bài viết
28
Được thích
3
Em đang mới tự tập học VBA nên còn nhiều điều chưa rõ lắm
Em có một bài tập về lập code giải phương trình bậc 2 như sau:
+ phương trình dạng AX^2 + BX + C = 0 (A<>0 )
+ kết quả sẽ hiện thông báo và trả kết quả về ô dưới phương trình đó
Em chỉ mới làm được trong trường hợp A <> 0
Còn nếu A = 0 (tức là như X^2 + BX + C =0) thì em muốn nó sẽ hiện lên msgbox "giá trị A phải khác 0" và sau đó là thoát kết thúc.
Anh chị nào giúp em làm trường hợp A = 0 để em hoàn thiện code của em tiếp với!!!
(chi tiết em có gửi file bên dưới)
 

File đính kèm

Lần chỉnh sửa cuối:
Em đang mới tự tập học VBA nên còn nhiều điều chưa rõ lắm
Em có một bài tập về lập code giải phương trình bậc 2 như sau:
+ phương trình dạng AX^2 + BX + C = 0 (A<>0 )
+ kết quả sẽ hiện thông báo và trả kết quả về ô dưới phương trình đó
Em chỉ mới làm được trong trường hợp A <> 0
Còn nếu A = 0 (tức là như X^2 + BX + C =0) thì em muốn nó sẽ hiện lên msgbox "giá trị A phải khác 0" và sau đó là thoát kết thúc.
Anh chị nào giúp em làm trường hợp A = 0 để em hoàn thiện code của em tiếp với!!!
(chi tiết em có gửi file bên dưới)

A = 0 hay A <> 0 thì ta vẫn cứ giải bình thường thôi, cần gì phải MsgBox (chả lẽ A=0 thì không giải được?)
Tôi dùng hàm mảng thế này:
Mã:
Function QuadEqual(ByVal A As Double, ByVal B As Double, ByVal C As Double)
  Dim Arr(1 To 2), d As Double
  If A <> 0 Then
    d = B ^ 2 - 4 * A * C
    If d >= 0 Then
      Arr(1) = (-B + Sqr(d)) / 2 / A
      Arr(2) = (-B - Sqr(d)) / 2 / A
    Else
      Arr(1) = CVErr(xlErrNA)
      Arr(2) = CVErr(xlErrNA)
    End If
  Else
    Arr(2) = ""
    If B = 0 Then
      Arr(1) = CVErr(xlErrNA)
    Else
      Arr(1) = -C / B
    End If
  End If
  QuadEqual = Arr
End Function
Không MsgBox gì cả ---> Nhìn vào kết quả, tự biết
 

File đính kèm

Upvote 0

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

Back
Top Bottom