คุณไม่สามารถทำได้หากไม่มีมาโคร รหัสนี้ควรใช้งานได้:
Private Sub Worksheet_Change(ByVal Target As Range)
therow = 1
thecolumn = 1
Dim wks As Worksheet
cellrow = Target.Row
cellcolumn = Target.Column
If (cellrow = therow And cellcolumn = thecolumn) Then
Set wks = ThisWorkbook.Worksheets("Sheet2")
wks.Cells(cellrow, cellcolumn) = Target.Value
End If
End Sub
เปิดมาโครด้วย ALT + F11 , ดับเบิลคลิก Sheet1 ทางด้านซ้ายและวางรหัสทางด้านขวา รหัสนี้จะถูกดำเนินการใน Sheet 1
ดังนั้นจึงคัดลอกการเปลี่ยนแปลงใน Sheet1 A1
ไปยัง Sheet2 A1
.
ทุกครั้งที่มีการเปลี่ยนแปลงในเวิร์กชีทแมโครนี้จะถูกเรียกใช้งาน มันตรวจสอบว่าเซลล์ที่เปลี่ยนแปลงอยู่ในแถว 1 และคอลัมน์ 1 (เซลล์ A1) แล้วคัดลอกค่าในเซลล์เดียวกันหรือไม่ Sheet2 .
หากคุณต้องการตรวจสอบการเปลี่ยนแปลงจาก Sheet2 ไปยัง Sheet1 ด้วยแล้ว:
- ดับเบิลคลิก Sheet2 ทางด้านซ้าย
- วางรหัสทางด้านขวา
- เปลี่ยนสาย
Set wks = ThisWorkbook.Worksheets("Sheet2")
เพื่อระบุปลายทางใหม่: Set wks = ThisWorkbook.Worksheets("Sheet1")
.
ตอนนี้มาโครนี้ใช้ตัวแปร แถว และ คอลัมน์ เพื่อทำการตัดสินใจคัดลอกค่าไปยังแผ่นงานอื่น ที่จุดเริ่มต้นพวกเขาถูกตั้งค่าเป็น 1 ในบรรทัด therow=1
และ thecolumn=1
ความหมายที่เราสนใจในเซลล์ A1 . และยิ่งกว่านั้นเราจะตรวจสอบว่าเซลล์ที่ถูกแก้ไขนั้นตรงกับค่าเหล่านี้ในบรรทัด If (cellrow = therow And cellcolumn = thecolumn) Then
.
คุณสามารถปรับเปลี่ยนค่าต่างๆเพื่อปรับแต่งตามความต้องการของคุณได้แม้กระทั่งตรวจสอบคอลัมน์หรือแถวทั้งหมดเช่น:
เปลี่ยนสายการตรวจสอบเป็น If (cellcolumn = thecolumn) Then
จะคัดลอกการเปลี่ยนแปลงที่เกิดขึ้นในคอลัมน์ที่มีค่าเหมือนกับตัวแปร thecolumn
ไม่ว่าแถวไหนจะเป็น
ตัวอย่างอื่น ๆ :
เปลี่ยนสายการตรวจสอบเป็น If (cellcolumn > thecolumn) Then
จะคัดลอกการเปลี่ยนแปลงที่เกิดขึ้นในคอลัมน์ใด ๆ ที่มากกว่าค่าของ thecolumn
ไม่ว่าแถวไหนจะเป็น