Vba: วิธีรับค่าของเซลล์จากแผ่นงานอื่น
คุณสามารถใช้วิธีการต่อไปนี้ใน VBA เพื่อรับค่าเซลล์ในแผ่นงานอื่น:
วิธีที่ 1: รับค่าของเซลล์จากแผ่นงานอื่น
Sub GetCellAnotherSheet()
ActiveCell.Value = Worksheets(" Sheet2 ").Range(" A2 ")
End Sub
มาโครเฉพาะนี้จะได้รับค่าจากเซลล์ A2 ใน Sheet2 และส่งคืนไปยังเซลล์ที่ใช้งานอยู่ในปัจจุบัน
วิธีที่ 2: รับผลลัพธ์ของการดำเนินการค่าเซลล์จากแผ่นงานอื่น
คุณยังสามารถดำเนินการกับเซลล์ในแผ่นงานอื่นและส่งกลับผลลัพธ์ของการดำเนินการในเซลล์ที่ใช้งานอยู่ในปัจจุบันได้
ตัวอย่างเช่น คุณสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อเพิ่มค่าในช่วง B2:B10 ใน Sheet2 และส่งคืนผลรวมในเซลล์ที่ใช้งานอยู่ในปัจจุบัน:
Sub GetCellAnotherSheet()
ActiveCell.Value = WorksheetFunction.Sum(Worksheets(" Sheet2 ").Range(" B2:B10 "))
End Sub
ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติ
ตัวอย่างที่ 1: รับค่าของเซลล์จากแผ่นงานอื่น
สมมติว่าเรามีเอกสารต่อไปนี้ชื่อ Sheet2 ซึ่งมีข้อมูลเกี่ยวกับผู้เล่นบาสเกตบอลต่างๆ:
สมมติว่าเซลล์ A2 บน Sheet1 ถูกเลือกเป็นเซลล์ที่ใช้งานอยู่
เราสามารถสร้างแมโครต่อไปนี้เพื่อรับค่าในเซลล์ A2 ของ Sheet2 และส่งคืนไปยังเซลล์ที่ใช้งานอยู่ในปัจจุบัน:
Sub GetCellAnotherSheet()
ActiveCell.Value = Worksheets(" Sheet2 ").Range(" A2 ")
End Sub
เมื่อเราเรียกใช้แมโครนี้ เราจะเห็นว่าค่าของเซลล์ A2 ของ Sheet1 ถูกตั้งค่าเป็น “Mavs” ซึ่งตรงกับค่าของเซลล์ A2 ของ Sheet2 :
ตัวอย่างที่ 2: รับผลลัพธ์ของการดำเนินการค่าเซลล์จากแผ่นงานอื่น
สมมติว่าเรามี เอกสารต่อไปนี้ชื่อ Sheet2 ซึ่งมีข้อมูลเกี่ยวกับผู้เล่นบาสเกตบอลต่างๆ:
เราสามารถใช้มาโครต่อไปนี้เพื่อรวมค่าในคอลัมน์จุดของ Sheet2 และส่งคืนผลลัพธ์ไปยังเซลล์ที่ใช้งานอยู่ในปัจจุบัน ซึ่งเกิดขึ้นเป็นเซลล์ A2 ของ Sheet1 :
Sub GetCellAnotherSheet()
ActiveCell.Value = WorksheetFunction.Sum(Worksheets(" Sheet2 ").Range(" A2 "))
End Sub
เมื่อเราเรียกใช้แมโครนี้ เราจะเห็นว่าผลรวมของค่าในช่วง A2:A10 ของ Sheet2 จะแสดงอยู่ในเซลล์ A2 ของ Sheet1 :
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน VBA:
VBA: วิธีตั้งค่าของเซลล์ในแผ่นงานอื่น
VBA: วิธีเลือกช่วงในเซลล์ที่ใช้งานอยู่
VBA: วิธีลบแถวตามค่าของเซลล์