NguyenNgocSon
KEEP WALKING
- Tham gia
- 4/4/08
- Bài viết
- 280
- Được thích
- 833
- Nghề nghiệp
- Ths. Cầu hầm
Xin mọi người chỉ giúo cách giải phương trình bằng VBA.Em mới học cũng chưa biết nhiều.Cám ơn mọi người.
VBA là Visual Basic for Application.VBA là gì vậy bạn?, giải thích được không?
Xin mọi người chỉ giúo cách giải phương trình bằng VBA.Em mới học cũng chưa biết nhiều.Cám ơn mọi người.
Function PTB2(Za As Double, Zb As Double, Zc As Double, Optional Zx As Long) As String
Dim Denta As Double, Checked As Boolean
Denta = Zb ^ 2 - 4 * Za * Zc
If Denta > 0 Then
Checked = True
X1 = (-Zb + Denta ^ (1 / 2)) / (2 * Za)
X2 = (-Zb - Denta ^ (1 / 2)) / (2 * Za)
ElseIf Denta = 0 Then
Checked = True
X1 = -Zb / (2 * Za)
X2 = -Zb / (2 * Za)
Else
Checked = False
End If
'=========================================
If Checked = True Then
If Zx = 1 Then
PTB2 = "X1=" & X1
ElseIf Zx = 2 Then
PTB2 = "X2= " & X2
Else
PTB2 = "X1= " & X1 & " // X2= " & X2
End If
Else
PTB2 = "Phuong trinh vo nghiem"
End If
End Function
Denta= b^2 - 4ac
Nếu Denta > o thì
X1= (-b+Denta^(1/2))/(2a)
X2=(-b-Denta^(1/2))/(2a)
Nếu Denta = 0 thì
X1=X2=-b/2a
Còn không thì thông báo "Chương trình vô nghiệm"
Máy nhà em không có? Em mở Excel lên, rồi nhấn Alt+F11 là thấy nó liền.VBA là Visual Basic for Application.
sao excel máy nhà em không có nhỉ? em học cơ bản không thấy có? hay nó là hàm hay công thức ở phiên bản mới?
Thêm:Denta= b2 - 4ac
Nếu Denta > o thì
X1= (-b+Denta^(1/2))/(2a)
X2=(-b-Denta^(1/2))/(2a)
Nếu Denta = 0 thì
X1=X2=-b/2a
Còn không thì thông báo "Chương trình vô nghiệm"
X1= If(. . .;(-Zb+Denta^(1/2))/(2*Za);IF(Denta=0;"nghiệm kép: "&-Zb/(2*Za);"Vô Nghiệm")))))))X1=IF(Denta>0;(-Zb+Denta^(1/2))/2*Za;IF(Denta=0;-Zb/2*Za;"Vô Nghiệm"))
Thì em hỏi VBA là cái gì, nó là cái đó đó. Tại em chưa làm gì hết, thì nó là một trang trắng. Giống như em mở Excel lên mà chưa làm gì hết thì nó là một Sheet trắng.giải thích như BNTT
Máy nhà em không có? Em mở Excel lên, rồi nhấn Alt+F11 là thấy nó liền.
__________________
thì em bó tay, chỉ thấy 1 trang trăng trắng?
Bài này bạn viết file cho trường hợp nghiệm là số phức luôn được không. Cám ơn nhéBạn xem file đính kèm. Mình làm hai cách để bạn tham khảo nhé:
Một: bằng VBA-Visual Basic For Application (tạo một UDF-User Define Function):
Hai: bằng công thức:PHP:Function PTB2(Za As Double, Zb As Double, Zc As Double, Optional Zx As Long) As String Dim Denta As Double, Checked As Boolean Denta = Zb ^ 2 - 4 * Za * Zc If Denta > 0 Then Checked = True X1 = (-Zb + Denta ^ (1 / 2)) / (2 * Za) X2 = (-Zb - Denta ^ (1 / 2)) / (2 * Za) ElseIf Denta = 0 Then Checked = True X1 = -Zb / (2 * Za) X2 = -Zb / (2 * Za) Else Checked = False End If '========================================= If Checked = True Then If Zx = 1 Then PTB2 = "X1=" & X1 ElseIf Zx = 2 Then PTB2 = "X2= " & X2 Else PTB2 = "X1= " & X1 & " // X2= " & X2 End If Else PTB2 = "Phuong trinh vo nghiem" End If End Function
Ta có Phương trình bậc 2: ax^2 + bx + c = 0
Bài này bạn viết file cho trường hợp nghiệm là số phức luôn được không. Cám ơn nhé
Function PTB2(Za As Double, Zb As Double, Zc As Double, Optional Zx As Long = 0) As String
Dim Denta As Double
Denta = Zb ^ 2 - 4 * Za * Zc
Select Case Denta
Case Is > 0
X1 = (-Zb + Denta ^ (1 / 2)) / (2 * Za)
X2 = (-Zb - Denta ^ (1 / 2)) / (2 * Za)
Case 0
X1 = -Zb / (2 * Za)
X2 = -Zb / (2 * Za)
Case Else
PTB2 = "Phuong trinh vo nghiem"
Exit Function
End Select
Select Case Zx
Case 1: PTB2 = "X1=" & X1
Case 2: PTB2 = "X2= " & X2
Case Else: PTB2 = "X1= " & X1 & " // X2= " & X2
End Select
End Function