Page 1 of 1

VBA ลบข้อมูลในเซล เมื่อเปลี่ยนแปลงข้อมูล

Posted: Fri Jun 10, 2011 5:49 am
by nurak
จากตัวอย่างที่ผมแนบมานั้นคือส่วนหนึ่งของแฟ้มเท่านั้นครับ ผมไม่สามารถแนบของจริงมาได้เพราะขนาดเกินกำหนด
ในส่วนของ E4 ที่ใช้ Validation นั้นเลือกเปลี่ยนค่าตามที่ต้องการตามรายการที่กำหนด
ในส่วนของ F4 จะใส่ค่าที่ต้องการเองในแต่ละครั้งค่าจะไม่เหมือนกัน
หลังจากนั้นข้อมูล E4 และ F4 จะถูกสั่งปริ้น แต่สิ่งที่ผมกังวลคือเมื่อมีการเลือกเปลี่ยนค่าที่ E4 และ ไม่เปลี่ยนค่าที่ F4 ข้อมูลที่ได้จะเกิดความผิดพลาด ผมจึงต้องการให้ลบค่าใน F4 ทุกครั้งที่ E4 เปลี่ยนค่าครับ

Re: VBA ลบข้อมูลในเซล เมื่อเปลี่ยนแปลงข้อมูล

Posted: Fri Jun 10, 2011 7:02 am
by snasui
:D การทำเช่นนั้นต้องใช้ VBA เข้ามาช่วยครับ

ลองตามนี้ครับ

1. กดแป้น Alt+F11 จะเป็นการเปิดหน้าต่าง VBE
2. ด้านซ้ายมือจะเห็นหน้าต่าง Project Explorer ซึ่งจะมีคำว่า VBAProject ปรากฏอยู่ ถ้ายังไม่ม่ให้กดแป้น Ctrl+R
3. ให้ Double Click Sheet1 ภายใต้ VBAProject โปรแกรมจะเปิดหน้าต่างสำหรับเขียน Code มาให้ด้านขวามือ
4. Copy Code ด้านล่างไปวาง

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$E$4" Then
    Range("F4").ClearContents
End If
End Sub
5. กดแป้น Alt+Q เพื่อปิด VBE และกลับไปยัง Excel > ทดสอบเปลี่ยนค่าใน E4 และสังเกตดูผล

Note: การใช้ Code VBA จำเป็นต้องกำหนดให้ใช้งาน Macro ได้ด้วยครับ ให้เข้าไปที่เมนู Tools > Macro > Security > กำหนดเป็น Medium หรือ Low หากเลือกเป็น Medium จะต้องกดให้ยอมรับ Macro ด้วยทุกครั้งที่เปิดไฟล์ที่มี Macro (VBA)

Re: VBA ลบข้อมูลในเซล เมื่อเปลี่ยนแปลงข้อมูล

Posted: Fri Jun 10, 2011 6:22 pm
by nurak
ขอบคุณมากครับสำหรับคำแนะนำ