ต้องการนำค่าจาก sub อื่นมาใช้ในอีก sub ต้องทำยังไงครับ
Posted: Tue Jan 21, 2020 4:55 pm
คือผมต้องการนำค่าในตัวแปร suminfo จาก sub cmbsave มาใช้ใน function ถัดมา โดยจะเริ่มทำงานด้วยการกดปุ่ม คำนวณ
นำค่า suminfo จากsub นี้
มาใช้ในfunction นี้ครับ
และfunction นี้ครับ
โดยจะให้เริ่มคำนวณเมื่อกดปุ่ม คำนวณ ตาม code นี้ครับ
รบกวนด้วยนะครับ ขอบคุณครับ

นำค่า suminfo จากsub นี้
Code: Select all
Option Explicit
Dim info(300) As Variant
Dim l As Long
Private Sub cmbsave_Click()
Dim suminfo As Double
Dim suminfosec As Double
Dim i As Integer
If l >= CLng(txtnum.Value) Then
MsgBox "Not record"
Exit Sub
End If
If txtinfo <> "" Then
l = l + 1
info(l) = CLng(txtinfo)
Call Reset
Else
MsgBox "please fill information", vbOKOnly + vbInformation, "information"
txtinfo.BackColor = vbRed
End If
suminfosec = 0
suminfo = 0
For i = 1 To UBound(info)
suminfo = suminfo + info(i)
suminfosec = suminfosec + ((info(i)) ^ 2)
Next i
End Sub Code: Select all
Function calculate()
Dim numtotal As Double
Dim up As Double
Dim inup As Double
inup = (txtnum * suminfosec) - suminfo ^ 2
up = Power(inup, 1 / 2)
numtotal = (40 * (up / suminfo)) ^ 2
End Function
Code: Select all
Function calculate_sec()
Dim numtotal As Double
Dim sqrt As Double
Dim inup As Double
Dim front As Double
Dim inlow As Double
Dim inall As Double
front = (40 * txtnum) / suminfo
inup = suminfosec - ((suminfo ^ 2) / txtnum)
inlow = txtnum - 1
inall = inup / inlow
sqrt = Power(inall, 1 / 2)
numtotal = front * (sqrt) ^ 2
End Function
โดยจะให้เริ่มคำนวณเมื่อกดปุ่ม คำนวณ ตาม code นี้ครับ
Code: Select all
Private Sub CommandButton1_Click()
If CLng(txtnum.Value) >= 30 Then
Call calculate
ElseIf CLng(txtnum.Value) < 30 Then
Call calculate_sec
End If
Label6 = calculate Or calculate_sec
End Sub