รบกวนสอบถาม Code VBA excel ในการ copy paste แบบมีเงื่อนไขหน่อยครับ
Posted: Sat Apr 04, 2015 9:21 am
รูบร่างหน้าตาของ excel ที่ผมใช้จะเป็นดังนี้ครับ
Column ด้านซ้ายสุดจะเป็นวันที่ซึ่งถูกเรียงไว้ตั้งแต่วันที่ 1/1/2015 จนถึง 31/12/15 และ Column ด้านขวาของแต่ละวันที่จะประกอบด้วยข้อมูลต่างๆที่ถูกเรียกขึ้นมาจาก database ด้วยสูตรที่กำหนดไว้ไล่เรียงกันไปด้วยหลายๆข้อมูลครับ ซึ่งผมจะต้องมีการ update ข้อมูลเสมอด้วยการ cal sheet เมื่อวันที่เปลี่ยนไปเพื่อดึงข้อมุลเข้ามาใน excel sheet แต่ทั้งนี้ปัญหาที่เกิดขึ้นคือมันจะ cal ช้ามาก ถ้าช่องที่เคยถุกเรียกข้อมุลแล้วยังคงคำสั่งไว้ซึ่งสูตรในการดึงข้อมุลออกมาจาก database ดังนั้นผมจึงแก้ปัญหาด้วยการ copy and paste by value ครับ แต่จะต้องทำด้วยการ manual ทั้งนี้ผมต้องการที่จะทำคำสั่งพวกนี้ลงไปใน VBA command botton ครับ
ด้วยการออกคำสั่งว่าถ้าวันนี้เป็นวันอะไร ให้ออกคำสั่งวันก่อนหน้าด้วยการ copy and paste by value ที่ช่อง cell เดิมทั้งหมด
หรือถ้าจะสามารถทำได้ ให้ออกคำสั่งว่า ถ้าวันนี้เป็นวันอะไร ให้ตรวจสอบวันก่อนหน้า ช่องข้อมูลไหนยังเป็น formula link ให้ทำการ copy and paste by value ทั้งหมด
ซึ่ง ณ ตอนนี้ผมลองเขียนแบบ basic ได้ดังนี้
Private Sub CommandButton1_Click()
With Sheets("XXX").Range("B27:EB27").Copy
End With
Sheets("XXXI").Range("B27:EB27").PasteSpecial xlPasteValues
With Sheets("YYY").Range("B27:EB27").Copy
End With
Sheets("YYY").Range("B27:EB27").PasteSpecial xlPasteValues
End Sub
Code ข้างต้นทำได้แค่เพียงการ copy sheet สองหน้าที่ผมกำหนดไว้ ใน cell ที่ผมกำหนดไว้ ให้มันทำ copy paste by value เท่านั้นครับ
ขอความกรุณาผู้รู้ อาจารย์ทุกท่านช่วยผมหน่อยครับ
ขอบคุณมากครับ
Column ด้านซ้ายสุดจะเป็นวันที่ซึ่งถูกเรียงไว้ตั้งแต่วันที่ 1/1/2015 จนถึง 31/12/15 และ Column ด้านขวาของแต่ละวันที่จะประกอบด้วยข้อมูลต่างๆที่ถูกเรียกขึ้นมาจาก database ด้วยสูตรที่กำหนดไว้ไล่เรียงกันไปด้วยหลายๆข้อมูลครับ ซึ่งผมจะต้องมีการ update ข้อมูลเสมอด้วยการ cal sheet เมื่อวันที่เปลี่ยนไปเพื่อดึงข้อมุลเข้ามาใน excel sheet แต่ทั้งนี้ปัญหาที่เกิดขึ้นคือมันจะ cal ช้ามาก ถ้าช่องที่เคยถุกเรียกข้อมุลแล้วยังคงคำสั่งไว้ซึ่งสูตรในการดึงข้อมุลออกมาจาก database ดังนั้นผมจึงแก้ปัญหาด้วยการ copy and paste by value ครับ แต่จะต้องทำด้วยการ manual ทั้งนี้ผมต้องการที่จะทำคำสั่งพวกนี้ลงไปใน VBA command botton ครับ
ด้วยการออกคำสั่งว่าถ้าวันนี้เป็นวันอะไร ให้ออกคำสั่งวันก่อนหน้าด้วยการ copy and paste by value ที่ช่อง cell เดิมทั้งหมด
หรือถ้าจะสามารถทำได้ ให้ออกคำสั่งว่า ถ้าวันนี้เป็นวันอะไร ให้ตรวจสอบวันก่อนหน้า ช่องข้อมูลไหนยังเป็น formula link ให้ทำการ copy and paste by value ทั้งหมด
ซึ่ง ณ ตอนนี้ผมลองเขียนแบบ basic ได้ดังนี้
Private Sub CommandButton1_Click()
With Sheets("XXX").Range("B27:EB27").Copy
End With
Sheets("XXXI").Range("B27:EB27").PasteSpecial xlPasteValues
With Sheets("YYY").Range("B27:EB27").Copy
End With
Sheets("YYY").Range("B27:EB27").PasteSpecial xlPasteValues
End Sub
Code ข้างต้นทำได้แค่เพียงการ copy sheet สองหน้าที่ผมกำหนดไว้ ใน cell ที่ผมกำหนดไว้ ให้มันทำ copy paste by value เท่านั้นครับ
ขอความกรุณาผู้รู้ อาจารย์ทุกท่านช่วยผมหน่อยครับ
ขอบคุณมากครับ