นี่คือคำถามเกี่ยวกับขอบเขต
หากคุณต้องการให้ตัวแปรมีอายุการใช้งานของฟังก์ชันเท่านั้นให้ใช้Dim
(ย่อมาจากDimension ) ภายในฟังก์ชันหรือย่อยเพื่อประกาศตัวแปร:
Function AddSomeNumbers() As Integer
Dim intA As Integer
Dim intB As Integer
intA = 2
intB = 3
AddSomeNumbers = intA + intB
End Function
'intA and intB are no longer available since the function ended
โลกตัวแปร (ตาม SLaks ชี้ให้เห็น) ประกาศด้านนอกของฟังก์ชั่นการใช้Public
คำหลัก ตัวแปรนี้จะพร้อมใช้งานในช่วงอายุของแอปพลิเคชันที่คุณกำลังทำงานอยู่ ในกรณีของ Excel หมายความว่าตัวแปรจะพร้อมใช้งานตราบเท่าที่สมุดงาน Excel นั้นเปิดอยู่
Public intA As Integer
Private intB As Integer
Function AddSomeNumbers() As Integer
intA = 2
intB = 3
AddSomeNumbers = intA + intB
End Function
'intA and intB are still both available. However, because intA is public, '
'it can also be referenced from code in other modules. Because intB is private,'
'it will be hidden from other modules.
นอกจากนี้คุณยังสามารถมีตัวแปรที่สามารถเข้าถึงได้ภายในโมดูลเฉพาะ (หรือคลาส) โดยการประกาศด้วยไฟล์ Private
คีย์เวิร์ด
หากคุณกำลังสร้างแอปพลิเคชันขนาดใหญ่และรู้สึกว่าจำเป็นต้องใช้ตัวแปรส่วนกลางฉันขอแนะนำให้สร้างโมดูลแยกเฉพาะสำหรับตัวแปรส่วนกลางของคุณ สิ่งนี้จะช่วยให้คุณติดตามพวกเขาได้ในที่เดียว