:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไร

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
godman
Silver
Silver
Posts: 643
Joined: Mon Jul 05, 2010 6:18 pm

อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไร

#1

Post by godman »

ผมมีข้อมูลบันทึกผลประเมินของเด็กทั้งบริษัทในแต่ละวันต้องคีย์ ชื่อ แผนก กะ คะแนนสอบวิชา GRR ซึ่งเป็นแค่ทักษะเดียวSheet GRR TABLEซึ่งเป็น Sheet รวมของทุกmodel แต่จริงๆเราต้องนำข้อมูลพวกนี้ไปแยกย่อยใส่เพิ่ม ผมเลยสร้าง Sheet โดยแบ่งแต่ละตาม Model เช่น Damper ARM เป็นต้นเพื่อไปใส่ทักษะอื่นๆ อีก 8-9 ทักษะซึ่งคะแนน แล้วก็ค่อยหาคะแนนรวมซึ่งจะกลายเป็นทักษะรวมของเด็ก แต่ละคน
2.คนที่ได้คะแนนไม่ถึง 4 จะต้องเรียกมาสอนใหม่ ผมก็ใช้วิธี Copy เอาคนที่ได้คะแนนไม่ถึง 4 ไปสอนและก็แยกไปลงใน Sheet ที่ต่อท้ายว่า Rev1,2 ถ้าสอบ 3 ครั้งก็จะเป็น Rev3

อยากทราบว่า
1.มีวิธีใหนบ้างที่ผมจะไม่ต้องพิมพ์ข้อมูลเดิมๆซ้ำ
2.ผมอยากดึงคนที่อยู่ใน Sheet GRR Table ให้ไปอยู่อีก Sheet ตาม Model ทำได้อย่างไร
3.ในแต่ละ Sheet ย่อย ผมอยากดึงคนที่ได้ได้เกรดต่ำกว่า 4 ไปใส่ใน Sheet อื่นแล้วต่อว่าเป็นการสอบซ่อม ซึ่งจะลงท้ายว่า Rev 1 2 3 เป็นต้น เช่น Sheet DamperVMI Rev0 ก็หมายควมว่า ดึงจาก Sheet หลักแล้วเลือกเอาแต่คนที่ Colump Product ว่า อยู่ Damper เป็นต้น ส่วน Rev1 คือสอบซ่อมครั้งที่ 1

ผมจะปรับปรุงอย่างไรให้ทำงานเร็วและไม่ซ้ำซ้อน ตอนนี้ผมมีปัญหามากและเสียเวลา แต่ผมไม่ถนัด Access ไม่ทราบว่าถ้าใช้ Excel จะเก็บข้อมูลลักษณะนี้ดีไหม
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30945
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#2

Post by snasui »

:D ผมอ่านแล้วยังไม่ค่อยเข้าใจในเรื่องการเก็บข้อมูลเท่าไรครับ ลองอธิบายขั้นตอนการทำงานย่อย ๆ มาหน่อยครับว่าเป็นอย่างไร หรือยกตัวอย่างมาสัก 1 Sheet ว่าทำงานอย่างไร นำข้อมูลใดมาใส่ตรงส่วนใด

สำหรับตารางข้อมูลที่แยกทำเป็น DAMPER VMI Rev.x เบื้องต้น ผมเห็นว่าสามารถทำอยู่ใน Sheet เีดียวกันได้เลยทุกทักษะโดยการเก็บข้อมูลทักษะลงไปด้านล่างในทางบรรทัด ซึ่ง 1 คนจะมี 13 ทักษะ แต่ละทักษะได้คะแนนเท่าไรก็กรอกไป แล้วค่อยทำ PivotTable เพื่อแยกข้อมูลเป็นรายคน รายแผนก หรือรายอื่น ๆ แล้วแต่ต้องการดูข้อมูล

สำหรับหน้ากรอกข้อมูลอาจจะทำฟอร์มขึ้นมา 1 ฟอร์มแล้วใช้ Macro ในการวางข้อมูลลง Database หลังจากกรอกเรียบร้อยแล้วครับ :mrgreen:
godman
Silver
Silver
Posts: 643
Joined: Mon Jul 05, 2010 6:18 pm

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#3

Post by godman »

โอ้ เริ่มเห็นแสงสว่างรำไรแล้วครับ จะอธิบายต่อไป สักครู่ครับ
godman
Silver
Silver
Posts: 643
Joined: Mon Jul 05, 2010 6:18 pm

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#4

Post by godman »

คือว่า Sheet 1 คือ Sheet รวมซึ่งผมมีพนักงานอยู่ 4 คนแต่ะลคนจะดู 1 PRODUCT ซึ่ง มีดังนี้ 1.DAMPER 2.ARM 3.IB 4.BW แต่ Sheet รวมนี้ผมจะให้ทั้ง 4 คนมากรอกแบบไม่แบ่งแยก จากนั้นเด็กผมก็จะ COPY คนของตนเองที่ผ่านการอบรม ไปไว้ใน Sheet REV 0 ซึ่งเป็น sheet ของแต่ละคนจริงๆ แล้วก็จะทำการกรอก คะแนนของทักษะอันอื่นอีก 12 ทักษะที่เหลืออยู่ ครานี้ก็จะดูว่ามีใครคนใหนมันกได้เกรดต่ำกว่า 4 ไหม ถ้าตำ่กว่าจะทำการอบรมซ่อม แล้วพอได้คะแนนเท่าำหร่ก็จะ ลงใน Sheet ใหม่โดยใช้ชื่อว่า rev 1 2 3 ตามจำนวนครั้งที่เด็กสอบซ่อมจนกว่าจะผ่าน สอนผมทำด้วยครับ ตอนนี้มันทำงานซ้ำซ้อนกันมาก เสียเวลามากกับการลงข้อมูล
User avatar
snasui
Site Admin
Site Admin
Posts: 30945
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#5

Post by snasui »

:D ผมทำตัวอย่างไฟล์มาให้ตามแนบด้านล่างครับ

โดยมีการแยก Data ออกเป็น Sheet เช่น

ข้อมูลเกี่ยวกับบุคคลก็แยกไ้ว้ที่ Sheet HrProfile
ข้อมูลเกี่ยวกับ Course การอบรมแยกไว้ที่ Sheet Course

จากนั้นสร้างหน้าจอในการกรอกข้อมูลพร้อมสูตรเพื่อดึงข้อมูลและคำนวณค่าที่เกี่ยวข้อง ค่าที่กรอกจะถูกเชื่อมโยงไปยัง Sheet Template เพื่อเรียงข้อมูลและง่ายต่อการจัดการ

เมื่อกดปุ่ม Record Data ข้อมูลที่กรอกไว้จะถูกนำไปวางที่ Sheet Database ต่อท้ายข้อมูลที่มีอยู่เดิมและทำการ Refresh Sheet PivotReport ให้อัตโนมัติ

สำหรับข้อมูลที่ทำมาเป็นตัวอย่างนี้ ผมแปลงจากข้อมูลที่แนบมาให้หากตรวจสอบแล้วเห็นว่าถูกต้องสามารถนำไปใช้จริงได้เลย แต่มีบางค่าที่จะต้อง Update เ้ข้าไปให้ตรงกับข้อมูลจริง เช่น รหัสพนักงาน นอกจากนี้มีข้อมูลวันที่ที่ได้คีย์ไว้เป็น Text ควรปรับให้เป็นวันที่ที่เป็น Serial Number ดังเ่ช่นข้อมูลวันที่อื่น ๆ เพื่อประโยชน์ในการสรุปข้อมูลเป็นงวด ๆ ใน PivotTable :mrgreen:
You do not have the required permissions to view the files attached to this post.
godman
Silver
Silver
Posts: 643
Joined: Mon Jul 05, 2010 6:18 pm

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#6

Post by godman »

I LOVE YOU SO MUCH ผมคิดว่าผมจะทดลองใช้ดูก่อน ถ้าได้ผลประการใดผมจะมาหาใหม่ครับ ผมจะต้องกลับมารายงานให้ทราบแน่ๆ อาจารย์ได้ทำคุณประโยชน์ให้กับสังคมบริหารมากเหลือเกิน ขอบพระคุณในขั้นต้นด้วยใจจริง
godman
Silver
Silver
Posts: 643
Joined: Mon Jul 05, 2010 6:18 pm

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#7

Post by godman »

คือผมไปเพิ่มชื่อพนักงานใหม่ ชื่อ Theeranart และใส่ข้อมูลใน Sheet HRprofile แล้วทำไมเมื่อมาหน้า Form มันจึงหาข้อมูลของชื่อนี้ไม่เจอครับ
2.ผมหาปุ่ม Paste ใน Form ไม่พบ
3.ลำดับการคีย์ข้อมูลคือ
3.1 Sheet HRprofile 3.2 Sheet Form เท่านั้นใช่ไหมครับ
4.Factor มีความหมายว่าอย่างไรครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30945
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#8

Post by snasui »

theeranart wrote:คือผมไปเพิ่มชื่อพนักงานใหม่ ชื่อ Theeranart และใส่ข้อมูลใน Sheet HRprofile แล้วทำไมเมื่อมาหน้า Form มันจึงหาข้อมูลของชื่อนี้ไม่เจอครับ
2.ผมหาปุ่ม Paste ใน Form ไม่พบ
3.ลำดับการคีย์ข้อมูลคือ
3.1 Sheet HRprofile 3.2 Sheet Form เท่านั้นใช่ไหมครับ
4.Factor มีความหมายว่าอย่างไรครับ
:D ปุ่ม Paste คือ ปุ่ม Record Data ครับ

ลำดับการคีย์ข้อมูลถูกต้องแล้วครับ ถ้าพนักงานเพิ่มก็ต้องไปเพิ่มใน Profile หากมีคอร์สเพิ่มก็ต้องไปเพิ่มใน Course

Factor คือตัวที่เอาไปทำการหารคะแนน จากไฟล์เดิม มีทั้่ง 24 และ 28

สูตรการดึงข้อมูลผมอาจจะใส่ขอบเขตไว้แค่ข้อมูลที่มี ถ้าเพิ่มข้อมูลพนักงานต้องแก้ไขสูตรครับขยายช่วงข้อมูลออกไป เช่น C2 ใน Sheet Form สูตรเดิม

=VLOOKUP(C4,HrProfile!$A$2:$E$195,2,0)

หากเพิ่มพนักงานเข้ามา 1 คนก็ต้องปรับเป็น

=VLOOKUP(C4,HrProfile!$A$2:$E$196,2,0) เป็นต้น

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

สามารถเ้ข้าไปดูการตั้งชื่อได้โดยเ้ข้าเมนู Insert > Name > Define ครับ :mrgreen:
godman
Silver
Silver
Posts: 643
Joined: Mon Jul 05, 2010 6:18 pm

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#9

Post by godman »

คือ Full point ของผมมันไม่ได้เต็ม 4 นะครับ เฉพาะ GR&R Test เท่านั้นที่เต็ม 4 ส่วนอันอื่นคะแนนเต็มที่ 2 คะแนนครับ
แสดงว่าผมต้องเข้าไปแก้ใน Sheet Database ของทุกคนเลยใช่ไหมครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30945
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#10

Post by snasui »

:D ถูกต้องครับ ถ้าจะใช้ไฟล์นี้เป็นตัวจริงก็ต้องปรับให้เป็นตามที่ใช้จริง ทบทวนค่าการคำนวณต่าง ๆ เพื่อให้ตรงกับงานจริงครับ อันนี้ทำมาเป็นตัวอย่างเท่านั้นน่ะครับ :mrgreen:
godman
Silver
Silver
Posts: 643
Joined: Mon Jul 05, 2010 6:18 pm

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#11

Post by godman »

ขอบพระคุณเป็นอย่างสูงครับ คิดว่านำไปใช้งานได้จริงครับ ส่วนรายละเอียดจะขอเวลาศีกษาและปรับแต่งค่าการคำนวณต่างๆดู คิดว่าต้องทำงานหนักก่อนครับ ถ้าไม่เข้าใจจริงๆจะมาถามใหม่แต่คิดว่าอีกสัก 2-3 วันะหนะครับ
godman
Silver
Silver
Posts: 643
Joined: Mon Jul 05, 2010 6:18 pm

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#12

Post by godman »

Sub PasteData()
Dim i As Integer
Dim rSource As Range
Dim rTarget As Range
i = Worksheets("Form30").Range("D6").Value
With Worksheets("Template30")
Set rSource = .Range(.Range("A2"), .Range("M" & i + 1))
End With
With Worksheets("Data30")
Set rTarget = .Range("A65536").End(xlUp).Offset(1, 0)
End With
Application.ScreenUpdating = False
rSource.Copy
rTarget.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Application.ScreenUpdating = False
MsgBox "Paste Finish"
Worksheets("PivotReport").PivotTables("PivotTable1"). _
PivotCache.Refresh
End Sub
คือผมลอกไปใส่ใน อีก sheet ครับชื่อ Sheet Data30 , template30 , จาก Form30 ทำไมมันฟ้องว่าผิดพลาดครับ ตรง i
User avatar
snasui
Site Admin
Site Admin
Posts: 30945
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#13

Post by snasui »

:D ลองส่งไฟล์ตัวอย่างมาดูครับ จะได้เห็นว่ามีการปรับค่าอะไรไว้อย่างไร วางตำแหน่ง Code ตรงไหน ฯลฯ :mrgreen:
godman
Silver
Silver
Posts: 643
Joined: Mon Jul 05, 2010 6:18 pm

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#14

Post by godman »

มันใหญ่ครับ ส่งไม่ได้
ลดขนาดแล้ว ก็ยังเกิน
User avatar
snasui
Site Admin
Site Admin
Posts: 30945
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#15

Post by snasui »

:shock: ตัดมาเป็นตัวอย่างก็ได้ครับ เอาเฉพาะ Sheet ที่เกี่ยวข้อง Save As มาเป็นอีกไฟล์ ลบฐานข้อมูลทิ้งไปก่อนก็ได้ครับ :P
godman
Silver
Silver
Posts: 643
Joined: Mon Jul 05, 2010 6:18 pm

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#16

Post by godman »

ไฟล์ครับ ช่วยแนะนำหน่อยครับว่าผมควรทำแบบนี้หรือไม่ คือผมอยากให้มันอยู่ไฟล์เดียวกันเพราะว่ามันเกี่ยวข้องกันหมดและผมอยากลดขั้นตอนการทำงานครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30945
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#17

Post by snasui »

:D ที่ Code ไม่ทำงานก็เพราะว่า Form กับ Form30 หน้าตาไม่เหมือนกันเลย ตำแหน่งเซลล์ต่าง ๆ ก็ไม่เหมือนกัน ลักษณะงานเช่นนี้ต้องปรับปรุงเปลี่ยนแปลง Code ให้เข้ากับงานใหม่ครับ ไม่สามารถเอาไปใช้ตรง ๆ โดยการเปลี่ยนเพียงชื่อ Sheet

ลองเพิ่มคำอธิบายมาครับว่าต้องการจะนำช่วงข้อมูลใดไปไว้ที่ใด นอกจากนี้ผมไม่เจอชีทที่ชื่อว่า Template30 ตามที่เขียนไว้ใน Code ครับ :mrgreen:
godman
Silver
Silver
Posts: 643
Joined: Mon Jul 05, 2010 6:18 pm

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#18

Post by godman »

ขอบคุณครับขอเวลาเขียนคำถามก่อนครับ
godman
Silver
Silver
Posts: 643
Joined: Mon Jul 05, 2010 6:18 pm

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#19

Post by godman »

ขอรบกวนครับ จาก code นี้ถ้าจะเปลี่ยนความต้องการเป็นว่า ให้ paste data ทับข้อมูลเดิม โดยมีข้อแม้ว่าชื่อเดิม พนักงานคนเดิม แต่คะแนนเปลี่ยน จะเปลี่ยน code ตรงใหนดีครับ

Code: Select all

[code]Sub PasteData()
Dim i As Integer
Dim rSource As Range
Dim rTarget As Range
i = Worksheets("Form").Range("D6").Value
With Worksheets("Template")
    Set rSource = .Range(.Range("A2"), .Range("M" & i + 1))
End With
With Worksheets("Database")
    Set rTarget = .Range("A65536").End(xlUp).Offset(1, 0)
End With
Application.ScreenUpdating = False
rSource.Copy
rTarget.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Application.ScreenUpdating = False
MsgBox "Paste Finish"
Worksheets("PivotReport").PivotTables("PivotTable1"). _
    PivotCache.Refresh
End Sub
[/code]
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30945
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: อยากจะลดขั้นตอนการคีย์ของเด็กให้ทำงานง่ายและเร็วทำอย่างไ

#20

Post by snasui »

:D ลองดูตัวอย่างการปรับ Code ตามด้านล่างครับ

Code: Select all

Sub PasteData()
    Dim i As Integer
    Dim rSource As Range
    Dim rTarget As Range
    On Error Resume Next
    i = Worksheets("Form").Range("D6").Value
    With Worksheets("Template")
        Set rSource = .Range(.Range("A2"), .Range("M" & i + 1))
    End With
    With Worksheets("Database")
        Set rTarget = .Range("A65536").End(xlUp).Offset(1, 0)
    End With
    Application.ScreenUpdating = False
    Dim msg As Byte
    msg = MsgBox(prompt:="Edit data click ""Yes"", Add data click ""No"".", _
        Buttons:=vbYesNo, Title:="Edit or Replace?")
    rSource.Copy
    If msg = vbNo Then
        rTarget.PasteSpecial xlPasteValues
    Else
        Dim lng As Long
        lng = Application.Match(Sheets("Form").Range("C2"), _
            Sheets("Database").Range("C:C"), 0)
        If Err > 0 Then
            MsgBox "You can't edit data, please try again."
            Exit Sub
        End If
        Sheets("Database").Range("A" & lng).PasteSpecial xlPasteValues
    End If
    Application.CutCopyMode = False
    Application.ScreenUpdating = False
    MsgBox "Paste Finish"
    Worksheets("PivotReport").PivotTables("PivotTable1"). _
        PivotCache.Refresh
End Sub
Post Reply