
ทำได้ 2 อย่างเป็นอย่างน้อยครับ
แบบแรก ประกาศตัวแปรเป็นระดับ Module คือต้องประกาศตัวแปรไว้บนสุด เช่นตัวแปร l ใน Code ชุดแรก ใน Module ถัด ๆ ไปค่อยนำตัวแปรนั้นไปใช้
แบบสอง ส่งตัวแปรนั้นไปใช้ใน Function, Procedure ถัดไป
ยกตัวอย่างเช่นด้านล่างตรง
Debug.Print จะส่งตัวแปรไปให้กับฟังก์ชั่น
calculate โดยฟังก์ชั่น
calculate จะต้องเขียนให้รับตัวแปรได้ด้วย
สำหรับการตั้งชื่อฟังก์ชั่น, Procedure, Variable พยายามเลือกค่าใด ๆ ที่ไม่ตรงกับคำสั่งของ VBA
คำว่า calculate เป็น Method หนึ่งของ Object ใน Excel เช่น
Sheet1.Calculate,
Range("a1:a10").calculate การที่ไปเขียนให้ตรงกันจะเกิด Error ที่ไม่คาดหมายได้ครับ
Code: Select all
Private Sub cmbsave_Click()
'Other code
For i = 1 To UBound(info)
suminfo = suminfo + info(i)
suminfosec = suminfosec + ((info(i)) ^ 2)
Next i
debug.print calculate(suminfosec)
End Sub
Function calculate(x as long)
Dim numtotal As Double
Dim up As Double
Dim inup As Double
inup = (txtnum * x) - suminfo ^ 2
up = Power(inup, 1 / 2)
numtotal = (40 * (up / suminfo)) ^ 2
End Function