ค่า VBA | วิธีใช้ Excel VBA Value Property (ตัวอย่าง)

คุณสมบัติค่า Excel VBA

Value คือคุณสมบัติใน VBAซึ่งส่วนใหญ่จะใช้กับวิธี range เพื่อกำหนดค่าให้กับช่วงที่เจาะจงซึ่งเป็นนิพจน์ที่สร้างขึ้นใน VBA เช่นถ้าเราใช้ range (“ B3”) value = 3 สิ่งนี้จะกำหนด เซลล์ B3 ค่าเป็น 3 ไม่จำเป็นว่าคุณสมบัติค่าจะถูกใช้ด้วยวิธีพิสัยเท่านั้นเราสามารถใช้กับฟังก์ชันอื่นได้เช่นกัน

ในช่วงแรกของการเรียนรู้ด้วย VBA เราอยากรู้มากว่าจะจัดเก็บข้อมูลในเซลล์อย่างไร หากคุณอยากรู้อยากเห็นคุณต้องเข้าใจคุณสมบัติ“ มูลค่า” ในบทความนี้เราจะอธิบายให้คุณทราบเกี่ยวกับคุณสมบัติ "มูลค่า" วิธีแทรกหรือตั้งค่าวิธีรับค่าจากเซลล์และอื่น ๆ อีกมากมาย

ในบทความก่อนหน้านี้เราได้กล่าวถึง“ VBA Range Cells” วัตถุช่วงสามารถช่วยให้เราอ้างถึงเซลล์เดียวและหลายเซลล์ ในการใช้ออบเจ็กต์ RANGE ก่อนอื่นเราต้องตัดสินใจว่าเราจะต้องแทรกค่าเซลล์ใดและเราจะแทรกค่าอะไร

จะใช้ Value Property ใน VBA ได้อย่างไร?

คุณสามารถดาวน์โหลดเทมเพลต Excel ของฟังก์ชันค่า VBA ได้ที่นี่ - เทมเพลต Excel ของฟังก์ชันค่า VBA

ตัวอย่าง # 1 - Range Object เพื่อกำหนดค่าให้กับเซลล์

  • ตัวอย่างเช่นหากคุณต้องการแทรกค่าลงในเซลล์ A1 คุณควรอ้างอิงเซลล์ A1 เช่นช่วงนี้(“ A1”)

รหัส:

 ค่าย่อย () ช่วง ("A1") End Sub 

  • หลังจากอ้างอิงเซลล์โดยใช้วัตถุ RANGE แล้วให้ใส่จุด (.) เพื่อดูรายการ IntelliSense ของคุณสมบัติและวิธีการทั้งหมดที่เกี่ยวข้องกับวัตถุนี้

รหัส:

ค่าย่อย () ช่วง ("A1") End Sub

  • สร้างตัวเลือกที่หลากหลายนี้ให้เลือกคุณสมบัติ“ VALUE”

รหัส:

 ค่าย่อย () ช่วง ("A1") ค่าท้ายย่อย 

  • เมื่อเลือกคุณสมบัติ“ VALUE” แล้วเราจำเป็นต้องตั้งค่าให้กับเซลล์ A1 โดยใส่ค่าเป็นเครื่องหมายเท่ากับ

รหัส:

 ค่าย่อย () ช่วง ("A1") ค่า = "ยินดีต้อนรับสู่ VBA" End Sub 

  • ตกลงนี่จะแทรกค่า "ยินดีต้อนรับสู่ VBA" ให้กับเซลล์ A1

  • หากคุณต้องการแทรกค่าเดียวกันให้กับหลายเซลล์ให้อ้างอิงเซลล์เช่นโค้ดด้านล่าง

รหัส:

 ค่าย่อย () ช่วง ("A1: A5") ค่า = "ยินดีต้อนรับสู่ VBA" End Sub 
  • นี้จะแทรกค่าจากเซลล์A1 เพื่อ A5

  • หากคุณต้องการแทรกค่าลงในเซลล์ต่างๆ แต่ไม่ใช่สำหรับชุดของเซลล์เราจำเป็นต้องใช้รหัสและที่อยู่ของเซลล์ในอาร์กิวเมนต์แยกกันดังต่อไปนี้

รหัส:

 ค่าย่อย () ช่วง ("A1, A5, B4, C2") ค่า = "ยินดีต้อนรับสู่ VBA" End Sub 
  • สิ่งนี้จะแทรกข้อความ“ ยินดีต้อนรับสู่ VBA” ในเซลล์A1, A5, B4 และเซลล์C2

ตัวอย่าง # 2 - แทรกค่าโดยใช้คุณสมบัติ CELLS

ไม่ผ่านวัตถุ RANGE แต่ยังใช้คุณสมบัติ VBA CELLS เราสามารถแทรกค่าได้ แต่ปัญหาอย่างหนึ่งของวัตถุ CELLS คือเราไม่สามารถเข้าถึงรายการ IntelliSense ได้ตามที่เราได้รับสำหรับวัตถุ RANGE

ในที่นี้เราต้องพูดถึงหมายเลขแถวและคอลัมน์ที่เราต้องการแทรกค่า ตัวอย่างเช่นหากคุณต้องการแทรกค่าลงในเซลล์ A1 รหัสคือ CELLS (1,1) หากคุณต้องการแทรกค่าลงในเซลล์ B5 รหัสคือ CELLS (5,2) เท่ากับ B5 เซลล์.

เราไม่สามารถแทรกค่าลงในเซลล์หลายเซลล์โดยใช้คุณสมบัติ CELLS ซึ่งแตกต่างจากวัตถุ RANGE ของเรา

ตัวอย่าง # 3 - รับมูลค่าเซลล์

เราได้เห็นวิธีการแทรกค่าลงในเซลล์แล้วตอนนี้เราจะมาดูวิธีรับค่าจากเซลล์

ขั้นตอนที่ 1:กำหนดตัวแปรเป็น String

รหัส:

 ค่าย่อย () Dim K เป็น String End Sub 

ขั้นตอนที่ 2:สำหรับตัวแปร“ k” นี้เราจะกำหนดค่าของเซลล์ A1 ในเซลล์ A1 ฉันได้ป้อนค่า“ ยินดีต้อนรับสู่ VBA”

ดังนั้นรหัสจะเป็นk = Range (“ A1”) ค่า

รหัส:

 ค่าย่อย () Dim K As String K = Range ("A1") ค่า End Sub 

ขั้นตอนที่ 3:แสดงผลลัพธ์ของตัวแปร“ k” ในกล่องข้อความ VBA

รหัส:

 ค่าย่อย () Dim K เป็นสตริง K = ช่วง ("A1") ค่า MsgBox K End Sub 

โดยการรันโค้ดเราควรได้ผลลัพธ์ของค่าเซลล์ A1 ในกล่องข้อความ

นอกจากนี้เรายังสามารถใช้วัตถุ RANGE เพื่อรับข้อมูลของเซลล์ A1 ด้านล่างโค้ดจะแสดงสิ่งเดียวกัน

รหัส:

 ค่าย่อย () Dim K เป็นชุดสตริง CellValue = ช่วง ("A1") MsgBox CellValue End Sub 

สิ่งนี้ควรได้รับค่าของเซลล์ A1 ในกล่องข้อความด้วย

ตัวอย่างที่ 4 - ค่าความผิดพลาดหากต้องการมากกว่าหนึ่งค่าเซลล์

สำหรับตัวอย่างดูโค้ดด้านล่าง

รหัส:

 ค่าย่อย () Dim K เป็นช่วงตั้งค่า CellValue = ช่วง ("A1: A5") MsgBox CellValue End Sub 

หากคุณเรียกใช้โค้ดด้านบนเราจะได้รับข้อผิดพลาด“ Type Mismatch”

สาเหตุที่เราได้รับข้อผิดพลาดนี้เนื่องจากเมื่อตัวแปรออบเจ็กต์ตั้งค่าเป็นคุณสมบัติ "ค่า" มากกว่าหนึ่งเซลล์ไม่เข้าใจจริงๆว่าจะให้ค่าเซลล์ใดจึงสามารถรับค่าเซลล์เดียวได้ในแต่ละครั้ง