Page 7 of 8
Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Sun Nov 06, 2011 7:18 am
by snasui

จาก Code ที่แนบมา (
ซึ่งไม่ถูกต้อง)
Set rSource = Worksheets("Form").Range("D1,B5:I5,V5:AD5,")
สังเกตว่าต้องการ Copy มาเฉพาะบรรทัดที่ 5 เท่านั้นใช่หรือไม่ครับ หากไม่ใช่ช่วยเขียนบรรยายระบุขอบเขตการ Copy ข้อมูลมาให้ชัดเจนด้วยครับ
Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Sun Nov 06, 2011 9:50 pm
by suka
อาจารย์คะ ลองปรับ Code เป็นแบบด้านล่างนี้ก็ Error ค่ะ
Code: Select all
Set rSource = Worksheets("Form").Range("J4,U4,B5:I100,V5:AD100")
Code กำหนดเซลล์ B5:I100,V5:AD100 ให้จำนวน 100 บรรทัดเนื่องจากชีท Template ให้ช่วงข้อมูล 1200 ข้อมูลค่ะ
เซลล์ J4,U4 ของชีท Form ต้องการให้ Copy ข้อมูล
วันที่เริ่มต้นที่เซลล์ A2 และ วันที่สิ้นสุดที่เซลล์ B2 ของชีท TemplateIn
เซลล์ B5:I100 ของชีท Form ต้องการให้ Copy ข้อมูล
แผนกที่เซลล์ C2 รหัสที่เซลล์ D2 ชื่อพนักงานที่เซลล์ E2 ชื่อเล่นที่เซลล์ F2 ปรับค่าแรงที่เซลล์ G2 ปรับ OTที่เซลล์ H2 ค่าแรงที่เซลล์ I2 ค่า OTที่เซลล์ J2 ของชีท TemplateIn
เซลล์ V5:AD100 ของชีท Form ต้องการให้ Copy ข้อมูล
รวมวันทำงานที่เซลล์ K2 รวมทำ OT ที่เซลล์ L2 รวมงินรายวันที่เซลล์ M2 รวมเงิน OTที่เซลล์ N2 รวมยอดสุทธิที่เซลล์ O2 หักเบิกที่เซลล์ P2 ประกันที่เซลล์ Q2 เบิกเพิ่มที่เซลล์ R2 คงค้างที่เซลล์ S2 ของชีท TemplateIn
ขอบคุณค่ะ
Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Sun Nov 06, 2011 10:11 pm
by snasui
suka wrote:อาจารย์คะ ลองปรับ Code เป็นแบบด้านล่างนี้ก็ Error ค่ะ
Code: Select all
Set rSource = Worksheets("Form").Range("J4,U4,B5:I100,V5:AD100")

การให้ช่วงเซลล์ที่ไม่เท่ากันเพื่อการ Copy ไปวางจะเกิด Error ครับ
เซลล์ B5:I100 ของชีท Form ต้องการให้ Copy ข้อมูล แผนกที่เซลล์ C2 รหัสที่เซลล์ D2 ชื่อพนักงานที่เซลล์ E2 ชื่อเล่นที่เซลล์ F2 ปรับค่าแรงที่เซลล์ G2 ปรับ OTที่เซลล์ H2 ค่าแรงที่เซลล์ I2 ค่า OTที่เซลล์ J2 ของชีท TemplateIn
เซลล์ V5:AD100 ของชีท Form ต้องการให้ Copy ข้อมูล รวมวันทำงานที่เซลล์ K2 รวมทำ OT ที่เซลล์ L2 รวมงินรายวันที่เซลล์ M2 รวมเงิน OTที่เซลล์ N2 รวมยอดสุทธิที่เซลล์ O2 หักเบิกที่เซลล์ P2 ประกันที่เซลล์ Q2 เบิกเพิ่มที่เซลล์ R2 คงค้างที่เซลล์ S2 ของชีท TemplateIn
ขอบคุณค่ะ
อ่านแล้วสรุปได้ว่านำบรรทัดเดียวไปวาง 96 บรรทัด คำถามคือ แล้วมันจะไม่ซ้ำกันหรือครับ

Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Sun Nov 06, 2011 11:32 pm
by suka
อาจารย์คะ นักเรียนเริ่มงงตัวเองแล้วค่ะ ความหมายกลายเป็น
snasui wrote:อ่านแล้วสรุปได้ว่านำบรรทัดเดียวไปวาง 96 บรรทัด คำถามคือ แล้วมันจะไม่ซ้ำกันหรือครับ
แบบนี้ได้อย่างไรคะ
เริ่มใหม่ค่ะที่ชีท Form เซลล์
J4,U4,Copy ไปที่ชีท TemplateIn เซลล์
A2,B2
ที่ชีท Form เซลล์
B5,C5,D5,E5,F5,G5,H5,I5 Copy ไปที่ชีท TemplateIn เซลล์
C2,D2,E2,F2,G2,H2,I2,J2
ที่ชีท Form เซลล์
V5,W5,X5,Y5,Z5,AA5,AB5,AC5,AD5 Copy ไปที่ชีท TemplateIn เซลล์
K2,L2,M2,N2,O2,P2,Q2,R2,S2
ไม่ทราบพอช่วยให้หมายตรงกับที่ตั้งใจไหมค่ะ ขอบคุณค่ะ
Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Mon Nov 07, 2011 7:50 pm
by snasui

ค่อย ๆ ถามตอบกันไปเรื่อย ๆ นะครับ
suka wrote:อาจารย์คะ นักเรียนเริ่มงงตัวเองแล้วค่ะ ความหมายกลายเป็น
snasui wrote:อ่านแล้วสรุปได้ว่านำบรรทัดเดียวไปวาง 96 บรรทัด คำถามคือ แล้วมันจะไม่ซ้ำกันหรือครับ
แบบนี้ได้อย่างไรคะ
จาก
suka wrote:
เซลล์ B5:I100 ของชีท Form ต้องการให้ Copy ข้อมูล แผนกที่เซลล์ C2 รหัสที่เซลล์ D2 ชื่อพนักงานที่เซลล์ E2 ชื่อเล่นที่เซลล์ F2 ปรับค่าแรงที่เซลล์ G2 ปรับ OTที่เซลล์ H2 ค่าแรงที่เซลล์ I2 ค่า OTที่เซลล์ J2 ของชีท TemplateIn
เซลล์ V5:AD100 ของชีท Form ต้องการให้ Copy ข้อมูล รวมวันทำงานที่เซลล์ K2 รวมทำ OT ที่เซลล์ L2 รวมงินรายวันที่เซลล์ M2 รวมเงิน OTที่เซลล์ N2 รวมยอดสุทธิที่เซลล์ O2 หักเบิกที่เซลล์ P2 ประกันที่เซลล์ Q2 เบิกเพิ่มที่เซลล์ R2 คงค้างที่เซลล์ S2 ของชีท TemplateIn
ขอบคุณค่ะ
สังเกตได้ว่า B5:I100 และ V5:AD100 คือช่วงเซลล์ ส่วนที่เหลือคือเซลล์เดี่ยว และ B5:I100 มีจำนวนทั้งหมด 96 บรรทัด ผมจึงสรุปว่าต้องการนำบรรทัดเดียวไปวาง 96 บรรทัด
เริ่มใหม่ค่ะที่ชีท Form เซลล์ J4,U4,Copy ไปที่ชีท TemplateIn เซลล์ A2,B2
ที่ชีท Form เซลล์ B5,C5,D5,E5,F5,G5,H5,I5 Copy ไปที่ชีท TemplateIn เซลล์ C2,D2,E2,F2,G2,H2,I2,J2
ที่ชีท Form เซลล์ V5,W5,X5,Y5,Z5,AA5,AB5,AC5,AD5 Copy ไปที่ชีท TemplateIn เซลล์ K2,L2,M2,N2,O2,P2,Q2,R2,S2
ไม่ทราบพอช่วยให้หมายตรงกับที่ตั้งใจไหมค่ะ ขอบคุณค่ะ
ความหมายที่ตั้งใจไม่ใช่ของผมครับ เป็นของคุณ suka เอง ซึ่งจากด้านบนไม่ทราบว่าตั้งใจจะ Copy เพียง 1 บรรทัดเท่านั้น ใช่หรือไม่ครับ

Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Mon Nov 07, 2011 8:36 pm
by suka
อาจารย์คะ ลองใหม่ค่ะ
ที่ชีท Form เซลล์ J4,U4 Copy ไปที่ชีท TemplateIn เซลล์ C2;J102
ที่ชีท Form เซลล์ B5:I105 Copy ไปที่ชีท TemplateIn เซลล์ C2;J102
ที่ชีท Form เซลล์ V5:AD5 Copy ไปที่ชีท TemplateIn เซลล์ K2:S102 ที่ชีท Template ให้ช่วงข้อมูล 1200 ข้อมูล ที่ชีท Form ควรต้องทำ 100 บรรทัด ใช่ไหมคะ
ต้องการ Copy ทุกบรรทัดที่ชีท Form บันทึกค่ะ แบบนี้ใช่ความหมายที่ถูกต้องไหมค่ะ หากไม่ใช่คงต้องกราบขออาจารย์ช่วยแนะนำค่ะ ขอบคุณค่ะ
Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Mon Nov 07, 2011 8:45 pm
by snasui

ลองทำตัวอย่างมาดูครับ
ชี้ให้เห็นว่าข้อมูลไหน Copy ไปไหน โยงลูกศร ใส่สี ตีเส้นประกอบคำอธิบายได้เต็มที่ครับ และอย่าลืมว่าเรากำลังพูดถึงนำรายการไปวางแบบไม่ซ้ำกัน
Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Tue Nov 08, 2011 7:10 pm
by suka
อาจารย์คะ ส่งภาพโยงลูกศรแบบนี้ค่ะ ลองส่งภาพมาก่อนค่ะหากใช่ได้ต้องส่งไฟล์แนบจะได้ส่งตามมาค่ะ
Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Tue Nov 08, 2011 7:24 pm
by snasui

ยังไม่เคลียร์ครับ ทำไมลูกศรสี่น้ำเงินสี่เส้นแรกไปอยู่บรรทัดที่ 6 ครับในขณะที่เส้นอื่น ๆ อยู่บรรทัดที่ 5 (ไม่นับวันที่)
Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Tue Nov 08, 2011 7:52 pm
by suka
ขออภัยค่ะอาจารย์ ลูกศรสี่น้ำเงินสี่เส้นแรกต้องอยู่บรรทัดที่ 5 ลืมขยับลูกศรมาที่บรรทัดที่ 5 ค่ะ
Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Tue Nov 08, 2011 7:56 pm
by snasui

ถ้าเช่นนั้นลองส่งไฟล์พร้อม Code ล่าสุดมาด้วย จะได้ปรับปรุงต่อจากนั้นครับ
Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Tue Nov 08, 2011 8:09 pm
by suka
อาจารย์คะ ส่งไฟล์ตัวอย่างล่าสุดค่ะ
ขอบคุณค่ะ
Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Tue Nov 08, 2011 9:05 pm
by snasui

Code ที่ปรับมาแล้วอยู่ใน Module ไหน ชื่อว่าอะไรครับ

Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Wed Nov 09, 2011 11:44 am
by suka
อาจารย์คะ ไฟล์ที่ส่งมาก่อนหน้านี้ไม่ได้แนบ Code Error มาค่ะ
ส่งไฟล์มาใหม่พร้อม Code Error ค่ะ อยู่ใน Module1 ชื่อ PasteData ค่ะ
ขอบคุณค่ะ
Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Wed Nov 09, 2011 2:26 pm
by snasui

อ้างอิงจากภาพที่โยงข้อมูลมา ผมปรับตัวอย่าง Code มาให้ตามด้านล่างครับ
Code: Select all
Sub PasteData()
Dim rSource As Range, rSource1 As Range
Dim rTarget As Range
With Worksheets("Template")
Set rSource = .Range("A5:T5").Resize(.Range("W1"))
End With
Set rTarget = Worksheets("Database").Range("A65536").End(xlUp).Offset(1, 0)
rSource.Copy
rTarget.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set rSource = Worksheets("Form").Range("J4,T4")
Set rSource1 = Worksheets("Form").Range("B5:G5,V5:W5,Z5:AC5")
Set rTarget = Worksheets("TemplateIn").Range("A2")
rSource.Copy
rTarget.PasteSpecial xlPasteValues
rSource1.Copy
rTarget.Offset(0, 2).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Sheets("Form").Range("F5:G100,J5:U100,AA5:AA100,AB5:AC100").ClearContents
End Sub
Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Wed Nov 09, 2011 6:25 pm
by suka
อาจารย์คะ ทดลอง Code แล้วค่ะ ที่ชีท TemplateIn Copy ได้แค่หนี่งบรรทัดจากชีท Form ที่บันทึกหลายบรรทัด ความต้องการให้ Copy ทุกบรรทัดที่ชีท Form บันทึก ขอรบกวนอาจารย์เรื่อง Code อีกรอบค่ะ
ได้ส่งไฟล์ตัวอย่าง Code อยู่ใน Module1 ชื่อ PasteData ค่ะ ขอบคุณค่ะ
Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Wed Nov 09, 2011 6:34 pm
by snasui

ผมเขียน Code ให้ตามภาพที่อธิบายมาครับ นั่นคือ Copy เพียงบรรทัดเดียวเท่านั้น
ช่วยสรุปให้ชัดเจนว่าต้องการ Copy อย่างไรกันแน่ครับ ซึ่งผมพยายามถามไปแล้วหลายครั้ง
การแนบไฟล์มาใหม่ให้แนบไฟล์ที่ได้ปรับปรุง Code มาเองแล้วทุกครั้ง ผมจะปรับเพิ่มจากนั้น หากยังไม่ปรับมาก็ต้องปรับมาก่อนครับ
Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Wed Nov 09, 2011 7:07 pm
by suka
อาจารย์คะ ไม่ได้แนบ Code ที่ลองปรับมาเนื่องจากใช้ไม่ได้ค่ะ
Code: Select all
Sub PasteData()
Dim rSource As Range, rSource1 As Range
Dim rTarget As Range
With Worksheets("Template")
Set rSource = .Range("A2:T2").Resize(.Range("W1"))
End With
Set rTarget = Worksheets("Database").Range("A65536").End(xlUp).Offset(1, 0)
rSource.Copy
rTarget.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set rSource = Worksheets("Form").Range("J4,T4")
Set rSource1 = Worksheets("Form").Range("B5:G5,V5:W5,Z5:AC5")
Set rTarget = Worksheets("TemplateIn").Range("A2").End(xlUp).Offset(1, 0)
rSource.Copy
rTarget.PasteSpecial xlPasteValues
rSource1.Copy
rTarget.Offset(0, 2).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Sheets("Form").Range("F5:G100,J5:U100,AA5:AA100,AB5:AC100").ClearContents
End Sub
ก่อนหน้านี้ได้ลองปรับ
Code: Select all
Set rTarget = Worksheets("TemplateIn").Range("A65536").End(xlUp).Offset(1, 0)
แบบนี้ก็ไม่ได้ค่ะ
Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Wed Nov 09, 2011 7:27 pm
by snasui

Code ที่แนบมานี้ต้องการจะสั่งให้ทำงานอย่างไรครับ

Re: ขอความช่วยเหลือบันทึกการทำงานของพนักงานรายวันเป็นฐานข้อม
Posted: Wed Nov 09, 2011 8:21 pm
by suka
ขออภัยค่ะอาจารย์ ที่ไม่สามารถสือความหมายให้อาจารย์ทราบถึงความต้องการ
Code ที่แนบต้องการให้ Copy ข้อมูลทุกบรรทัดที่ชีท Form บันทึกมาไว้ที่ชีท TemplateIn ทุกข้อมูลที่มีหัวคอลัมน์ในชีท TemplateIn ค่ะ
ต้องการปรับ Code จากที่ Copy มาแค่หนึ่งบรรทัดให้เป็นตามจำนวนบรรทัดที่ชีท Form บันทึกค่ะ ขอบคุณค่ะ