Page 1 of 1

vba copy ข้อมูลภายใต้เงือนไข

Posted: Mon Nov 04, 2013 2:46 pm
by wisitb
คือว่าผมทำ vba copy ข้อมูลได้แล้วครับ แต่ผมอยากให้ copy ข้อมูลโดยมีเงืนอไข เงือนไขผมจะcopy ข้อมูลตามวันที่ครับ


เช่น วันที่ 1/11/2013 มีข้อมูล 3 ก็ copy ข้อมูลไป sheet3 ตามวันที่คือ 1/11/2013

Re: vba copy ข้อมูลภายใต้เงือนไข

Posted: Mon Nov 04, 2013 2:50 pm
by snasui
:D กระทู้นี้ได้คำตอบแล้วยังครับ http://www.snasui.com/viewtopic.php?f=3&t=5679

Re: vba copy ข้อมูลภายใต้เงือนไข

Posted: Mon Nov 04, 2013 3:04 pm
by wisitb
ดึงข้อมูลได้แล้วครับ แต่ติดปัญหาใหม่ครับ ตามที่ได้แจ้งข้างบน

Re: vba copy ข้อมูลภายใต้เงือนไข

Posted: Mon Nov 04, 2013 3:09 pm
by snasui
:D ควรแจ้งผลด้วยเสมอตามกฎการใช้บอร์ดข้อ 6 ด้านบนครับ

Re: vba copy ข้อมูลภายใต้เงือนไข

Posted: Mon Nov 04, 2013 3:11 pm
by wisitb
ครับ พอดีช่วงนี้งานเข้าเยอะ แถมพอว่างดันลืมครับ ขอบคุณครับที่แจ้งเตือน

Re: vba copy ข้อมูลภายใต้เงือนไข

Posted: Mon Nov 04, 2013 3:12 pm
by snasui
wisitb wrote:คือว่าผมทำ vba copy ข้อมูลได้แล้วครับ แต่ผมอยากให้ copy ข้อมูลโดยมีเงืนอไข เงือนไขผมจะcopy ข้อมูลตามวันที่ครับ


เช่น วันที่ 1/11/2013 มีข้อมูล 3 ก็ copy ข้อมูลไป sheet3 ตามวันที่คือ 1/11/2013
:D ไม่ทราบว่าวันที่ที่ต้องการจะดึงนั้นอยู่ที่เซลล์ใด หรือทราบได้อย่างไรว่าต้องดึงวันใด Code ที่เขียนมาแล้วชื่อว่าอะไร ติดบรรทัดใดครับ

Re: vba copy ข้อมูลภายใต้เงือนไข

Posted: Mon Nov 04, 2013 3:25 pm
by wisitb
คือ จริงๆ แล้วผมยังเขียนเงื่อนไขการคัดลอก ไม่่เป็นเลยครับ เป็นแต่คัดลอกข้อมูลซึ่งเป็นการคัดลองแบบ fix cell ด้วย แต่ผมต้องการคัดลอกตามวันที่คัรบ
เช่น คัดลอกข้อมูลใน วันที่ 1/11/2013 มาไว้อีกชีท โดยใส่ไว้ในวันที่ 1/11/2013

Re: vba copy ข้อมูลภายใต้เงือนไข

Posted: Mon Nov 04, 2013 3:48 pm
by snasui
:D หากเป็นเช่นนั้นให้ใช้สูตรดึงข้อมูลที่ต้องการมาก่อนแล้วค่อยนำข้อมูลนั้นไปวางปลายทางด้วย VBA ครับ

Re: vba copy ข้อมูลภายใต้เงือนไข

Posted: Mon Nov 04, 2013 3:50 pm
by wisitb
ยังไงหรือครับ สูตรคัดลอกข้อมูลคือ

Dim rs As Range, rt As Range

Set rs = Worksheets("Sheet2").Range("A1:A6") _

Set rt = Worksheets("Sheet").Range("A" & Rows.Count) _
.End(xlUp).Offset(1, 0)
rs.Copy
rt.PasteSpecial xlPasteValues
Application.CutCopyMode = False

Re: vba copy ข้อมูลภายใต้เงือนไข

Posted: Mon Nov 04, 2013 3:56 pm
by snasui
:D ที่โพสต์มาไม่ใช่สูตร แต่เป็น Code สูตรคือการใช้ฟังก์ชั่นใน Excel ดึงข้อมูลมาเฉพาะที่ต้องการ ทำเท่านี้ให้ได้ก่อนครับ

สำหรับการโพสต์ Code ให้แสดงเป็น Code ดูตัวอย่างที่นี่ http://www.snasui.com/viewtopic.php?f=2&t=1187

Re: vba copy ข้อมูลภายใต้เงือนไข

Posted: Mon Nov 04, 2013 3:59 pm
by wisitb

Code: Select all

Dim rs As Range, rt As Range

Set rs = Worksheets("Sheet2").Range("A1:A6") _

 Set rt = Worksheets("Sheet2").Range("A" & Rows.Count) _
    .End(xlUp).Offset(1, 0)
 rs.Copy
 rt.PasteSpecial xlPasteValues
 Application.CutCopyMode = False

Re: vba copy ข้อมูลภายใต้เงือนไข

Posted: Mon Nov 04, 2013 4:07 pm
by snasui
:D ให้แนบตัวอย่างผลลัพธ์ที่ต้องการมาด้วยว่าต้องการวางผลลัพธ์ที่เซลล์ใด ด้วยเงื่อนไขใด

สำหรับ Code หากยังเขียนให้ Loop ไม่เป็นยังไม่ควรใช้ ใช้สูตรเข้ามาช่วยในการหาข้อมูลตามเงื่อนไขก่อน แล้วค่อยนำ Code มาช่วยครับ

Re: vba copy ข้อมูลภายใต้เงือนไข

Posted: Mon Nov 04, 2013 4:24 pm
by snasui
:D ตัวอย่างการใช้สูตรมาแสดงตามเงื่อนไข http://www.snasui.com/viewtopic.php?f=3&t=466 เพื่อเป็นแนวทางครับ

Re: vba copy ข้อมูลภายใต้เงือนไข

Posted: Mon Nov 04, 2013 4:35 pm
by wisitb
sheet1 จะเป็นข้อมูลต้นทางครับ ซึ่งจะประกอบด้วยวันที่ และ ของเข้า ซึ่งจะคัดลอกข้อมูลของเข้าไปไว้ที่ Sheet2 ตามวันที่ครับ ซึ่งจะคัดลอกข้อมูลตั้งแต่วันที่ยังไม่มีข้อมูลของเขาถึงวันปัจจุบัน
จากตัวอย่าง จะทำการคัดลอก ข้อมูลของเข้าของวันที่ 3/11/2013 กับ 4/11/2013


ด้านล่างนี้เป็น code คัดลอกข้อมูลแต่ยังไม่มีเงือนไข

Code: Select all

Dim rs As Range, rt As Range

Set rs = Worksheets("Sheet2").Range("A1:A6") _

 Set rt = Worksheets("Sheet2").Range("A" & Rows.Count) _
    .End(xlUp).Offset(1, 0)
 rs.Copy
 rt.PasteSpecial xlPasteValues
 Application.CutCopyMode = False

Re: vba copy ข้อมูลภายใต้เงือนไข

Posted: Mon Nov 04, 2013 4:58 pm
by snasui
wisitb wrote:ซึ่งจะคัดลอกข้อมูลตั้งแต่วันที่ยังไม่มีข้อมูลของเขาถึงวันปัจจุบัน
จากตัวอย่าง จะทำการคัดลอก ข้อมูลของเข้าของวันที่ 3/11/2013 กับ 4/11/2013
:D จากคำอธิบายและตัวอย่างที่แนบมา

ที่ Sheet2 เซลล์ D3 คี่ย์สูตร

=IF(B3>TODAY(),"",SUMIF(Sheet1!$B$3:$B$13,B3,Sheet1!$D$3:$D$13))

Enter > Copy ลงด้านล่าง

การจะใช้ VBA ควรปรับ VBA เป็นบ้าง หากปรับไม่ได้เลยยังไม่ควรใช้ VBA ให้ศึกษามาตามลำดับก่อนครับ

สำหรับผู้เริ่มต้นควรใช้สูตรสำหรับดึงข้อมูลออกมาก่อนแล้วค่อยใช้ VBA เข้ามาช่วย

สามารถบันทึก Macro เพื่อสร้างสูตรแล้วปรับ Code ที่ได้มาใช้งาน

Re: vba copy ข้อมูลภายใต้เงือนไข

Posted: Mon Nov 04, 2013 5:03 pm
by wisitb
ขอบคุณครับ เดี๋ยวผมจะลองทำดูนะครับ พอดีผมเลี่ยง vba มานานมากแล้ว ใช้แต่สูตร excel ธรรมดา แต่เห็นความจำเป็นของ vba เลยมาหัดเขียน