...ส บ า ย ๆ ส ไ ต ล์ มื อ ไ ม่ PRO แ ถ ม ยั ง... LOWFESSIONAL ...

<<
ธันวาคม 2550
 1
2345678
9101112131415
16171819202122
23242526272829
3031 
 
18 ธันวาคม 2550
 

ตัวอย่างบางงานที่ใช้ TimeStamp ใน Excel


|"ลุงไม้..."|123it.co.nr|เรื่องทั้งหมด|เรื่องที่แล้ว |เรื่องต่อไป|

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

ลักษณะที่ต้องการก็คือ เมื่อพนักงานพิมพ์รหัสวัสดุในคอลัมน์ A ให้คอลัมน์ B ณ บรรทัดเดียวกันนั้น ลงวันเดือนปี และเวลาขณะนั้นทันที และเมื่อมีวัสดุเพิ่มขึ้นมา พนักงานก็จะพิมพ์ข้อมูลในคอลัมน์ A ณ บรรทัดถัดลงไปเรื่อยๆ และคอลัมน์ B ก็จะลงวันเวลาตามจริงไปเรื่อยๆเช่นกัน

ผมรับปากมา ก็มองว่าไม่น่าจะยากนัก พอว่างๆจากงานประจำ ก็เลยยกมาทดลองดูสักหน่อย โดยลองเริ่มต้นที่ B1 พิมพ์สูตรนี้ลงไป

=IF(A1<>"",NOW(),"")

จากนั้นก็ปรับ Format ของ B1 ให้เป็น

d mm yyyy [$-1000000]h:mm:ss AM/PM;@

เพื่อการแสดงผลเป็น วันที่ เดือน ปี ชั่วโมง นาที วินาที เช้า/บ่าย (อ้างอิงกับ Excel 2003)

จากนั้นก็ลองพิมพ์ข้อมูลเข้าไปใน A1 ดู ปรากฏว่าใช้ได้ ข้อมูลใน B1 แสดงวันเวลาได้เป็นอย่างดี เมื่อลองทิ้งเวลาสักช่วง แล้วพิมพ์ข้อมูลใน A1 ใหม่ ข้อมูลใน B1 ก็เปลี่ยนไปแสดงเวลาจริงๆขณะนั้นทันที

คิดในใจว่า "งานนี้เข้าทาง" ว่าแล้วก็ลองลากสูตรจาก B1 ไปถึง B10 ทันที (โดยผมตั้งให้ Excel แสดงผลเป็นสูตร แล้วค่อยจับภาพ)



คราวนี้ลองทดสอบการลงรายการดู (โดยปรับการแสดงผลกลับมาให้เป็นปรกติก่อน)

- พิมพ์ข้อมูลใน A1 ใน B1 ก็แสดงวันเวลาได้อย่างถูกต้อง
- พิมพ์ข้อมูลใน A2 ใน B2 ก็แสดงวันเวลาได้อย่างถูกต้อง
- พิมพ์ข้อมูลใน A3 ใน B3 ก็แสดงวันเวลาได้อย่างถูกต้อง

แต่...ในขณะที่พิมพ์ข้อมูลลงมาเรื่อยๆ วันเวลาในแต่ละบรรทัดก่อนหน้านี้ จะเปลี่ยนเป็นเวลาสุดท้าย ณ การลงข้อมูลสุดท้ายทุกที ดังรูปข้างล่างนี้ เป็นรูปเมื่อพิมพ์ข้อมูลใน A1



และอีกรูป คือขณะพิมพ์ข้อมูลไปถึง A6 แล้ว



ถึงกับนั่งเคาะปากกาแก็กๆเลย...งานที่คิดว่าหมูๆ ไม่ได้หมูซะแล้ว คิดไปคิดมา เลยต้องใช้ตัวช่วยประจำ นั่นคือเข้าเว็บ Google.com แล้วค้นด้วยคำว่า timestamp excel ปรากฏว่างานนี้ได้กลับมาเพียบ มีทั้งเป็นสูตร มีทั้งเป็นโค้ด ผมเลยเลือกมาแบบหนึ่ง มาลองดำเนินการดังต่อไปนี้

1. เปิดงานใหม่ขึ้นมา จะมีชีทงาน 3 ชีทขึ้นมาตามปกติ
2. กด Alt+F11 เพื่อเปิดหน้าเขียนโค้ดขึ้นมา
3. ในหน้าต่าง Project - VBAProject ดับเบิ้ลคลิกที่ Sheet1 (Sheet1) จะได้หน้าเขียนโค้ดของชีท 1 ออกมา



4. ที่ช่อง General เลือก Worksheet ตอนนี้ถ้ามีโค้ดอะไรขึ้นมา ให้ลบทิ้งไปก่อน
5. และในอีกช่องถัดไป เลือก Change จะได้โค้ดนี้ออกมา
Private Sub Worksheet_Change(ByVal Target As Range)

End Sub
6. พิมพ์โค้ดเพิ่มเข้าไป โดยเปลี่ยนแปลงจากที่ค้นมาจากอินเตอร์เน็ตเล็กน้อย ได้ดังนี้

Private Sub Worksheet_Change(ByVal Target As Range)
If ActiveCell.Column = 1 Then Range("b" & Target.Row) = Now()
End Sub

7. เมื่อทดลองลงรายการในคอลัมน์ A โดยเว้นช่วงเวลาแต่ละบรรทัดเล็กน้อย จะได้ผลลัพท์ดังนี้



จากโค้ดสั้นๆนี้ ก็สามารถตอบโจทย์ที่ต้องการได้ทั้งหมด โดยการกระทำการใดๆที่คอลัมน์อื่น จะไม่มีการบันทึกเวลา จะทำงานตามบรรทัดที่ลงข้อมูล ก็เฉพาะการคีย์ที่คอลัมน์ A เท่านั้น โดยไม่ต้องใส่สูตรใดๆในชีทงานอีก จากตัวอย่างงานชิ้นเล็กๆนี้ น่าจะนำไปประยุกต์ใช้ได้อีกหลายงานเลยทีเดียว...


Create Date : 18 ธันวาคม 2550
Last Update : 18 ธันวาคม 2550 12:34:43 น. 5 comments
Counter : 10919 Pageviews.  
 
 
 
 
อยากได้วิธีการคำนวนหาเวลาการทำงานเช่น เริ่มงานวันที่20/04/2008 9:00 am ทำงานเสร็จวันที่21/04/2008 12:00 อยากได้จำนวนวันทำงานเป็นวันและจำนวนชั่วโม
งเราสามารถคำนวนได้มั้ยช่วยตอบด่วนค่ะ
 
 

โดย: sureeporn.sangangam@gmail.com IP: 58.136.119.55 วันที่: 14 พฤษภาคม 2551 เวลา:10:23:09 น.  

 
 
 
รบกวนสอบถามหน่อยนะครับว่า
จากตัวอย่างในข้อ 7 ถ้าต้องการ Lock cell ในคอลัมม์ B
ไม่ให้สามารถแก้ไขเวลาได้... ทำยังไงได้บ้างครับ
 
 

โดย: suwat_ee8@hotmail.com IP: 125.25.131.123 วันที่: 29 พฤษภาคม 2553 เวลา:9:44:18 น.  

 
 
 
การล้อคเซลล์
เลือกเซลล์ที่ต้องการล้อค
คลิกขวา Format cells-Protection-ติ๊กเครื่องหมายถูก ที่Locked
เสร็จแล้วเลือกเมนู Protect Sheet-ใส่รหัสผ่าน - เอาเครื่องหมายถูกที่ Select locked cells ออก- ยืนยันรหัสผ่านอีกครั้ง - จบ
 
 

โดย: สมุนไอที IP: 27.55.174.177 วันที่: 15 กรกฎาคม 2556 เวลา:19:58:27 น.  

 
 
 
เป็นประโยชน์อย่างมากเลยครับ แต่ว่าผมทำงานอยู่ 2 เครื่องพอไปเปิดอีกเครื่องปรากฎว่าไม่สามารถ save ได้ ต้องทำไงครับ? อยากใช้ฐานข้อมูลตัวเดียวกันครับ
 
 

โดย: Charoenchai_54@hotmail.com IP: 211.25.207.239 วันที่: 14 พฤศจิกายน 2556 เวลา:23:39:59 น.  

 
 
 
ขอบพระคุณ
 
 

โดย: BugNote IP: 125.26.3.171 วันที่: 1 ธันวาคม 2566 เวลา:14:32:23 น.  

Name
Opinion
*ใช้ code html ตกแต่งข้อความได้เฉพาะสมาชิก

mitrapap
 
Location :
สระบุรี Thailand

[ดู Profile ทั้งหมด]

ฝากข้อความหลังไมค์
Rss Feed
Smember
ผู้ติดตามบล็อก : 18 คน [?]




Free Domain Names @ .co.nr!
[Add mitrapap's blog to your web]

MY VIP Friend

 
pantip.com pantipmarket.com pantown.com