snasui.com ยินดีต้อนรับ ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ส่วน Space bar ไม่ได้เป็นค่า Blank ดังนั้นการเคาะ Space bar เป็นการกรอกอักขระอย่างหนึ่ง หากไม่มีอยู่ใน List และได้กำหนดให้ Validation ไม่ยอมรับค่าที่ไม่อยู่ใน List ก็จะไม่สามารถกรอกได้ครับ
การทำให้ Validation ยอมรับค่าใด ๆ ให้เข้าไปที่ Data > Validation > แถบ Error alert ให้ปลดเครื่องหมายที่ Show error alert after invalid data is entered.
ขอโทษอาจารย์ค่ะ คือหนูอธิบายงงเอง สิ่งที่เป็นปัญหาตอนนี้คือ cell ที่หนูทำไว้เป็น dropdown list มันจะสามารถเลือกได้หลายค่าเช่น Col "priority"จะเลือก H แล้วก็เลือก M ได้อีก ซึ่งปกติแล้ว dropdown list จะเลือกได้เพียงแค่ค่าเดียวอะค่ะ หนูต้องการให้ col อื่นๆที่ไม่ใช่ priority เลือกได้ค่าเดียวเหมือน dropdown list ปกติ ส่วน col "process name" สามารถเลือกได้หลายค่าค่ะ ส่วนที่หนูบอกว่า space bar คือหนูเขียนผิดค่ะอาจารย์ หนูจะหมายถึง backspace อะค่ะ พอหนูใส่ code นี้ลงไปใน sheet แล้วมันไม่สามารถใช้ backspace ลบข้อความได้ปกติค่ะ ต้องใช้ปุ่ม delete ลบแทน
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngDV As Range
Dim oldVal As String, newVal As String
Dim tr As Long
If Target.Column <> 10 Then Exit Sub
'Other Code
End Sub
ps หนูเจออยู่อีกปัญหาหนึ่งอะค่ะคือหลังจากที่หนูใช้ backspace ลบข้อความใน cell (ใน col "Process name")แล้วกด enter ข้อความใน cell มันเพิ่มขึ้นเองอะค่ะ เช่น หนูเลือก A แล้วก็เลือก B แล้วกด backspace เพื่อลบ B และกด enter ข้อความใน cell มันขึ้นเป็น A, B, A อะค่ะอาจารย์
ลืมแนะนำเรื่องหนังสือ เนื่องจากผมไม่ได้อ่านหนังสือไทยจึงขออภัยที่ไม่สามารถแนะนำหนังสือไทยได้ครับ แหล่งศึกษาของผมส่วนใหญ่คือ Help ของโปรแกรมเอง เวบต่างประเทศ เช่น http://www.mrexcel.com, http://www.excelforum.com และ Text book
สำหรับ Text book ที่จะแนะนำเป็น Excel 2010 Power Programming with VBA ของ John Walkenbach, Excel 2007 VBA Programmer's Reference ของ John Green และคณะ