Vba: วิธีตั้งค่าของเซลล์ในแผ่นงานอื่น


คุณสามารถใช้วิธีการต่อไปนี้ใน VBA เพื่อตั้งค่าเซลล์ในแผ่นงานอื่น:

วิธีที่ 1: ตั้งค่าเซลล์ในแผ่นงานอื่น

 Sub SetCellAnotherSheet()
    
    Sun wks1 As Worksheet, wks2 As Worksheet
    
    'specify sheets to use
    Set wks1 = Sheets(" Sheet1 ")
    Set wks2 = Sheets(" Sheet2 ")
    
    'set cell value in Sheet2 equal to cell value in Sheet1
    wks2.Range(" A2 ").Value = wks1.Range(" A2 ").Value
    
End Sub

มาโครนี้จะตั้งค่าของเซลล์ A2 ใน Sheet2 ให้เท่ากับค่าของเซลล์ A2 ใน Sheet1

วิธีที่ 2: ตั้ง ค่า หลาย เซลล์ในชีตอื่น

 Sub SetCellAnotherSheet()
    
    Sun wks1 As Worksheet, wks2 As Worksheet
    
    'specify sheets to use
    Set wks1 = Sheets(" Sheet1 ")
    Set wks2 = Sheets(" Sheet2 ")
    
    'set cell range in Sheet2 equal to cell range in Sheet1
    wks2.Range(" A2:A11 ").Value = wks1.Range(" A2:A11 ").Value
    
End Sub

มาโครนี้จะตั้งค่าของแต่ละเซลล์ในช่วง A2:A11 ใน Sheet2 ให้เท่ากับค่าของแต่ละเซลล์ในช่วง A2:A11 ใน Sheet1

ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติ

ตัวอย่างที่ 1: ตั้งค่าเซลล์ในแผ่นงานอื่น

สมมติว่าเรามีแผ่นงานต่อไปนี้ชื่อ Sheet1 ซึ่งมีชื่อของทีมบาสเก็ตบอลต่างๆ:

และสมมติว่าเรามี Sheet2 ซึ่งมีแถวส่วนหัวเพียงแถวเดียว:

เราสามารถสร้างมาโครต่อไปนี้เพื่อตั้งค่าของเซลล์ A2 ของ Sheet2 ให้เท่ากับค่าของเซลล์ A2 ของ Sheet1 :

 Sub SetCellAnotherSheet()
    
    Sun wks1 As Worksheet, wks2 As Worksheet
    
    'specify sheets to use
    Set wks1 = Sheets(" Sheet1 ")
    Set wks2 = Sheets(" Sheet2 ")
    
    'set cell value in Sheet2 equal to cell value in Sheet1
    wks2.Range(" A2 ").Value = wks1.Range(" A2 ").Value
    
End Sub

เมื่อเราเรียกใช้แมโครนี้ เราจะเห็นว่าค่าของเซลล์ A2 ของ Sheet2 ถูกตั้งค่าเป็น “Mavs” ซึ่งตรงกับค่าของเซลล์ A2 ของ Sheet1 :

ตัวอย่างที่ 2: ตั้งค่าหลายเซลล์ในชีตอื่น

สมมติว่าเราต้องการตั้งค่าของแต่ละเซลล์ในช่วง A2:A11 ของ Sheet2 ให้เท่ากับแต่ละเซลล์ในช่วง A2:A11 ของ Sheet1

เราสามารถสร้างมาโครต่อไปนี้เพื่อทำสิ่งนี้:

 Sub SetCellAnotherSheet()
    
    Sun wks1 As Worksheet, wks2 As Worksheet
    
    'specify sheets to use
    Set wks1 = Sheets(" Sheet1 ")
    Set wks2 = Sheets(" Sheet2 ")
    
    'set cell range in Sheet2 equal to cell range in Sheet1
    wks2.Range(" A2:A11 ").Value = wks1.Range(" A2:A11 ").Value
    
End Sub

เมื่อเราเรียกใช้แมโครนี้ เราจะเห็นว่าค่าในช่วง A2:A11 ของ Sheet2 ตอนนี้ถูกตั้งค่าให้เหมือนกับค่าในช่วง A2:A11 ของ Sheet1 :

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน VBA:

VBA: วิธีค้นหาบรรทัดที่ใช้ล่าสุด
VBA: วิธีนับจำนวนแถวในช่วง
VBA: วิธีนับจำนวนคอลัมน์ที่ใช้

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *