Page 1 of 1
การเคลียร์ข้อมูล
Posted: Fri Oct 21, 2011 9:31 am
by bank9597

อาจารย์ครับ โค๊ดด้านล้างเป็นโค๊ดสั่งเคลียร์ข้อมูล เวลามีข้อมูลอยู่ในฟอร์มครบตามเซลล์ที่เราระบุไว้ในโค๊ด แล้วเราสั่งเคลียร์ข้อมูล มันเคลียร์ได้
แต่เวลาไม่มีข้อมูลใดๆเลย แล้วเราสั่งเคลียร์ มันก็จะติด Debug ครับ คิดว่าน่าจะต้องมี IF เข้าไปช่วยอีก
รบกวนอาจารย์เพิ่มโค๊ดให้ด้วยน่ะครับ ผมยังจับทางไม่ถูก
Code: Select all
Sub Button1_Click()
ActiveSheet.Unprotect Password:="240130" '<==UnProtect
Sheets("PurchaseOrder").Select
Selection.ClearContents
Range("B17:H76,L3,G7,C13,B7").SpecialCells(xlCellTypeConstants).ClearContents
ActiveSheet.Protect Password:="240130" '<== Protect Again
Exit Sub
End Sub
Re: การเคลียร์ข้อมูล
Posted: Fri Oct 21, 2011 9:36 am
by snasui

ลองใช้ On Error Resume Next มาช่วยครับ จะไ้ด้เป็น
Code: Select all
Sub Button1_Click()
On Error Resume Next
'Other code
Range("B17:H76,L3,G7,C13,B7").SpecialCells(xlCellTypeConstants).ClearContents
ActiveSheet.Protect Password:="240130" '<== Protect Again
Exit Sub
End Sub
Re: การเคลียร์ข้อมูล
Posted: Fri Oct 21, 2011 10:01 am
by bank9597

มันไม่ทำงานอ่ะครับ ผมเลยใส่โค๊ด
Code: Select all
ActiveSheet.Protect Password:="240130" '<== Protect Again
นี้ไปที่บรรทัดบนสุด มันเลยเป็นปรกติ
เพราะอะไรครับ
Re: การเคลียร์ข้อมูล
Posted: Fri Oct 21, 2011 10:08 am
by snasui

ที่ยกมาถามนั้น ผิด Logic และ Code ไม่ควรทำงานได้ครับ
การทำงานกับชีทที่ป้องกันไว้นั้น ต้องปลดการป้องกันก่อน แล้วค่อย Run ตาม Statement อื่น ๆ จากนั้นค่อย Protect เข้าไปใหม่
หากนำ Code ที่ทำการ Protect ไว้ก่อน Code อื่น ๆ แล้วคำสั่งในการ Clear จะทำงานได้อย่างไรหากไปป้องกันการแก้ไขเอาไว้

Re: การเคลียร์ข้อมูล
Posted: Fri Oct 21, 2011 10:16 am
by bank9597

อ่อ ไม่ใช่ครับอาจารย์ คือว่าผมเอาโค๊ด
Code: Select all
ActiveSheet.Protect Password:="240130" '<== Protect Again
ไปไว้บรรทัดทัดบนสุด มันเลยกลายเป็นแบบนี้ครับ
Code: Select all
Sub Button1_Click()
ActiveSheet.Unprotect Password:="240130" '<==UnProtect
On Error Resume Next
'Other code
Range("B17:H76,L3,G7,C13,B7").SpecialCells(xlCellTypeConstants).ClearContents
ActiveSheet.Protect Password:="240130" '<== Protect Again
Exit Sub
End Sub
เพราะตรงนี้อาจารย์เคยบอกผมแล้ว ผมจำได้แม่นครับ

Re: การเคลียร์ข้อมูล
Posted: Fri Oct 21, 2011 10:26 am
by snasui

ครับ ไม่ทราบปัญหาคืออะไรครับ

Re: การเคลียร์ข้อมูล
Posted: Fri Oct 21, 2011 10:34 am
by bank9597

คือตอนที่เอาโค๊ดของอาจารย์มาใส่ แล้วผมก็ลองทดสอบ ปรากฏว่ามันเคลียร์ข้อมูลปกติ แต่พอกดครั้งที่2 ตอนที่ไม่มีข้อมูลในฟอร์มเลย ปุ่มมันไม่ทำงาน ผมเลยกลับไปดูโค๊ดของอาจารย์ ซึ่งผมเห็นโค๊ด ActiveSheet.Protect Password:="240130" '<== Protect Again อันนี้อยู่ด้านล่าง คำว่า "Protect Again" ทำให้ผมเข้าใจว่า เราต้องปลดล๊อคชีทก่อน ผมเลยกลับไปดูตัวอย่างโค๊ดที่อาจารย์เคยให้ไว้ เลยจำได้ ผมจึงเอา ActiveSheet.Unprotect Password:="240130" '<==UnProtect ไว้บรรทัดบนสุด แล้วลองRUn ดู ปรากฏว่าปัญหาหมดไป ผมเลยถามอาจารย์ว่า เพราะเหตุใดมันถึงเป็นเช่นนั้น เพราะผมคิดว่าอาจารย์ต้องทราบอย่างแน่นอนครับ

Re: การเคลียร์ข้อมูล
Posted: Fri Oct 21, 2011 10:39 am
by snasui

แสดงว่าผมตอบย่อไปหน่อย ไม่ได้นำ Code Unprotect มาใส่ไว้ด้วยเนื่องจากละไว้ในฐานที่เข้าใจ
bank9597 wrote:ผมเลยกลับไปดูตัวอย่างโค๊ดที่อาจารย์เคยให้ไว้ เลยจำได้ ผมจึงเอา ActiveSheet.Unprotect Password:="240130" '<==UnProtect ไว้บรรทัดบนสุด แล้วลองRUn ดู ปรากฏว่าปัญหาหมดไป ผมเลยถามอาจารย์ว่า เพราะเหตุใดมันถึงเป็นเช่นนั้น เพราะผมคิดว่าอาจารย์ต้องทราบอย่างแน่นอนครับ
สำหรับคำตอบนี้ได้ตอบไปแล้วครับ
snasui wrote:การทำงานกับชีทที่ป้องกันไว้นั้น ต้องปลดการป้องกันก่อน แล้วค่อย Run ตาม Statement อื่น ๆ จากนั้นค่อย Protect เข้าไปใหม่
หากนำ Code ที่ทำการ Protect ไว้ก่อน Code อื่น ๆ แล้วคำสั่งในการ Clear จะทำงานได้อย่างไรหากไปป้องกันการแก้ไขเอาไว้
Re: การเคลียร์ข้อมูล
Posted: Fri Oct 21, 2011 10:48 am
by bank9597

อิอิ อาจารย์ต้องทำใจหน่อยน่ะครับ พอดีว่าผมยังไม่ได้คล่องในเรื่องการเขียนโค๊ดเลย หนังสือก็ยังไม่ได้ซื้อมาอ่านเลย (น้ำท่วม อิอิ)
ดังนั้นถ้าอาจารย์ตอบอะไรมาแล้วผมไม่เข้าใจ ผมต้องขอโทษด้วยครับ เพราะความรู้ยังไม่ถึงจริงๆ

Re: การเคลียร์ข้อมูล
Posted: Fri Oct 21, 2011 10:58 am
by bank9597
อีกนิดครับอาจารย์ ผมไม่อยากตั้งกระทู้ใหม่
ปัญหาที่ผมกลัวมาตลอด ตอนนี้มันเริ่มปรากฏแล้วครับ ไม่รู้ว่าเป็นเพราะมีสูตรและ มาโคร เยอะไปหรือเปล่า มันถึงได้ Error บ่อยเวลากด Save
กลัวว่าเวลาเอาไปใช้งานจริงจะเกิดปัญหาครับ
Error.JPG
Re: การเคลียร์ข้อมูล
Posted: Fri Oct 21, 2011 11:09 am
by snasui

ตอบไว้แล้วตามนี้ครับ
snasui wrote: 
ทดสอบวิธีนี้และไฟล์นี้กับเครื่องอื่น ๆ ครับ หากว่าสามารถทำงานได้ปกติ แสดงว่าเป็นที่โปรแกรม Uninstall แล้ว Install ใหม่ด้วยตัวที่สมบูรณ์ หากเครื่องอื่นก็ได้ผลทำให้โปรแกรมปิดไปเหมือนกันก็แสดงว่าเป็นที่ไฟล์ครับ