Page 1 of 1

สอบถามการเขียน VBA ครับ (มือใหม่หัดเขียนครับ)

Posted: Fri Jul 21, 2017 7:52 pm
by Jarupong
สวัสดีครับทุกๆท่าน

ผมสนใจเริ่มหัดเขียน VBA เพื่อ Copy ค่าจาก Sheets("BZ_RTD") ตามเวลาที่ตั้งใว้ (เวลาในชีท Master) และวางในชีทใหม่ 3 ชีทตามตำแหน่งอ้างอิง (อ้างตำแหน่งที่จะวางจาก ชีท Master) ผมใช้วิธีเขียนที่ละขั้นตอนซึง code ยาวมาก อยากปรึกษาท่านสมาชิกพอจะมี
แนวทางที่จะเขียนแบบสั้น แต่ทำงานได้เหมือนกันหรือเปล่าครับ ขอบคุณครับ

1.เริ่ม Copy ครั้งแรกตอนเวลา 9:55 โดยเลือข้อมูลจาก column A,C,F,G จาก ชีท BZ_RTD
2.คัดลอกข้อมูลจาก column A,C,F,G ชีท BZ_RTD วางในตำแหน่ง col A1 ในชีท DataPaste
3.คัดลอกข้อมูลจาก column A,C ชีท BZ_RTD วางในตำแหน่ง col A1 ในชีท Deal
4.คัดลอกข้อมูลจาก column A,F ชีท BZ_RTD วางในตำแหน่ง col A1 ในชีท Vbuy
5.คัดลอกข้อมูลจาก column A,G ชีท BZ_RTD วางในตำแหน่ง col A1 ในชีท VSell
6.ถัดมาอีก 5 นาที 10:00 ทำการคัดลอกข้อมูลอีกครัง แต่ครั้งนี้ไม่คัดลอกแถว A โดยเลือข้อมูลจาก column C,F,G จาก ชีท BZ_RTD
7.คัดลอกข้อมูลจาก column C,F,G ชีท BZ_RTD วางในตำแหน่ง col E1 ในชีท DataPaste
8.คัดลอกข้อมูลจาก column C ชีท BZ_RTD วางในตำแหน่ง col C1 ในชีท Deal
9.คัดลอกข้อมูลจาก column F ชีท BZ_RTD วางในตำแหน่ง col C1 ในชีท Vbuy
10.คัดลอกข้อมูลจาก column G ชีท BZ_RTD วางในตำแหน่ง col C1 ในชีท Vsell
11.ถัดมาอีก 5 นาที 10:05 ทำการคัดลอกข้อมูลอีกครัง โดยเลือข้อมูลจาก column C,F,G จาก ชีท BZ_RTD
12.คัดลอกข้อมูลจาก column C,F,G ชีท BZ_RTD วางในตำแหน่ง col H1 ในชีท DataPaste
13.คัดลอกข้อมูลจาก column C ชีท BZ_RTD วางในตำแหน่ง col D1 ในชีท Deal
14.คัดลอกข้อมูลจาก column F ชีท BZ_RTD วางในตำแหน่ง col D1 ในชีท Vbuy
15.คัดลอกข้อมูลจาก column G ชีท BZ_RTD วางในตำแหน่ง col D1 ในชีท Vsell
16.ถัดมาอีก 5 นาที 10:10 ทำการคัดลอกข้อมูลอีกครัง โดยเลือข้อมูลจาก column C,F,G จาก ชีท BZ_RTD
17.คัดลอกข้อมูลจาก column C,F,G ชีท BZ_RTD วางในตำแหน่ง col K1 ในชีท DataPaste
18.คัดลอกข้อมูลจาก column C ชีท BZ_RTD วางในตำแหน่ง col E1 ในชีท Deal
19.คัดลอกข้อมูลจาก column F ชีท BZ_RTD วางในตำแหน่ง col E1 ในชีท Vbuy
20.คัดลอกข้อมูลจาก column G ชีท BZ_RTD วางในตำแหน่ง col E1 ในชีท Vsell
21.ซ้ำขั้นตอน 16-20 จนกระทั้งเวลา 16:40

'***********************
Sample excel VBA beginner
'***********************

Sub CopyByTime()
'
' CopyByTime Macro
'

'
If Sheets("Master").Range("d2").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c2").Value Then
Sheets("DataPaste").Select
Range("A1").Select
Sheets("BZ_RTD").Select
Range("A1:A51,C1:C51,F1:G51").Select
Selection.Copy
Sheets("DataPaste").Select
Range("A1").Select
ActiveSheet.Paste
Range("A1").Select

Sheets("BZ_RTD").Select
Range("A1:A51,C1:C51").Select
Selection.Copy
Sheets("Deal").Select
Range("A1").Select
ActiveSheet.Paste
Range("A1").Select

Sheets("BZ_RTD").Select
Range("A1:A51,F1:F51").Select
Selection.Copy
Sheets("Vbuy").Select
Range("A1").Select
ActiveSheet.Paste
Range("A1").Select

Sheets("BZ_RTD").Select
Range("A1:A51,G1:G51").Select
Selection.Copy
Sheets("Vsell").Select
Range("A1").Select
ActiveSheet.Paste
Range("A1").Select

End If


If Sheets("Master").Range("d3").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c3").Value Then
Sheets("BZ_RTD").Select
Range("C1:C51,F1:G51").Select
Selection.Copy
Sheets("DataPaste").Select
Range("E1").Select
ActiveSheet.Paste
Range("E1").Select

Sheets("BZ_RTD").Select
Range("C1:C51").Select
Selection.Copy
Sheets("Deal").Select
Range("C1").Select
ActiveSheet.Paste
Range("C1").Select


Sheets("BZ_RTD").Select
Range("F1:F51").Select
Selection.Copy
Sheets("Vbuy").Select
Range("C1").Select
ActiveSheet.Paste
Range("C1").Select


Sheets("BZ_RTD").Select
Range("G1:G51").Select
Selection.Copy
Sheets("Vsell").Select
Range("C1").Select
ActiveSheet.Paste
Range("C1").Select



End If


If Sheets("Master").Range("d4").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c4").Value Then
Sheets("BZ_RTD").Select
Range("C1:C51,F1:G51").Select
Selection.Copy
Sheets("DataPaste").Select
Range("h1").Select
ActiveSheet.Paste
Range("h1").Select


Sheets("BZ_RTD").Select
Range("C1:C51").Select
Selection.Copy
Sheets("Deal").Select
Range("D1").Select
ActiveSheet.Paste
Range("D1").Select


Sheets("BZ_RTD").Select
Range("F1:F51").Select
Selection.Copy
Sheets("Vbuy").Select
Range("D1").Select
ActiveSheet.Paste
Range("D1").Select


Sheets("BZ_RTD").Select
Range("G1:G51").Select
Selection.Copy
Sheets("Vsell").Select
Range("D1").Select
ActiveSheet.Paste
Range("D1").Select

End If


If Sheets("Master").Range("d5").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c5").Value Then
Sheets("BZ_RTD").Select
Range("C1:C51,F1:G51").Select
Selection.Copy
Sheets("DataPaste").Select
Range("k1").Select
ActiveSheet.Paste
Range("k1").Select

Sheets("BZ_RTD").Select
Range("C1:C51").Select
Selection.Copy
Sheets("Deal").Select
Range("e1").Select
ActiveSheet.Paste
Range("e1").Select


Sheets("BZ_RTD").Select
Range("F1:F51").Select
Selection.Copy
Sheets("Vbuy").Select
Range("e1").Select
ActiveSheet.Paste
Range("e1").Select


Sheets("BZ_RTD").Select
Range("G1:G51").Select
Selection.Copy
Sheets("Vsell").Select
Range("e1").Select
ActiveSheet.Paste
Range("e1").Select



End If

If Sheets("Master").Range("d6").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c6").Value Then
Sheets("BZ_RTD").Select
Range("C1:C51,F1:G51").Select
Selection.Copy
Sheets("DataPaste").Select
Range("n1").Select
ActiveSheet.Paste
Range("n1").Select

Sheets("BZ_RTD").Select
Range("C1:C51").Select
Selection.Copy
Sheets("Deal").Select
Range("f1").Select
ActiveSheet.Paste
Range("f1").Select


Sheets("BZ_RTD").Select
Range("F1:F51").Select
Selection.Copy
Sheets("Vbuy").Select
Range("f1").Select
ActiveSheet.Paste
Range("f1").Select


Sheets("BZ_RTD").Select
Range("G1:G51").Select
Selection.Copy
Sheets("Vsell").Select
Range("f1").Select
ActiveSheet.Paste
Range("f1").Select

End If

If Sheets("Master").Range("d7").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c7").Value Then
Sheets("BZ_RTD").Select
Range("C1:C51,F1:G51").Select
Selection.Copy
Sheets("DataPaste").Select
Range("q1").Select
ActiveSheet.Paste
Range("q1").Select

Sheets("BZ_RTD").Select
Range("C1:C51").Select
Selection.Copy
Sheets("Deal").Select
Range("g1").Select
ActiveSheet.Paste
Range("g1").Select


Sheets("BZ_RTD").Select
Range("F1:F51").Select
Selection.Copy
Sheets("Vbuy").Select
Range("g1").Select
ActiveSheet.Paste
Range("g1").Select


Sheets("BZ_RTD").Select
Range("G1:G51").Select
Selection.Copy
Sheets("Vsell").Select
Range("g1").Select
ActiveSheet.Paste
Range("g1").Select

End If

'***** TBD
If Sheets("Master").Range("d8").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c8").Value Then
Sheets("BZ_RTD").Select
Range("C1:C51,F1:G51").Select
Selection.Copy
Sheets("DataPaste").Select
Range("t1").Select
ActiveSheet.Paste
Range("t1").Select

Sheets("BZ_RTD").Select
Range("C1:C51").Select
Selection.Copy
Sheets("Deal").Select
Range("t1").Select
ActiveSheet.Paste
Range("t1").Select


Sheets("BZ_RTD").Select
Range("F1:F51").Select
Selection.Copy
Sheets("Vbuy").Select
Range("t1").Select
ActiveSheet.Paste
Range("t1").Select


Sheets("BZ_RTD").Select
Range("G1:G51").Select
Selection.Copy
Sheets("Vsell").Select
Range("t1").Select
ActiveSheet.Paste
Range("t1").Select

Re: สอบถามการเขียน VBA ครับ (มือใหม่หัดเขียนครับ)

Posted: Fri Jul 21, 2017 7:55 pm
by Jarupong
ตัวอย่างไฟล์ที่ลองเขียนครับ

Re: สอบถามการเขียน VBA ครับ (มือใหม่หัดเขียนครับ)

Posted: Fri Jul 21, 2017 8:27 pm
by snasui
:D การโพสต์ Code ให้อ่านกฎข้อ 5 ด้านบนจะมี Link แนะนำวิธีให้โพสต์แล้วแสดงเป็น Code จะได้สะดวกในการอ่านและนำไปทดสอบ สำหรับการปรับ Code ให้สั้นนั้นผมเห็นว่าไม่ใช่เหตุจำเป็นเร่งด่วน แต่หากมีปัญหาการใช้งาน ติดขัดตรงไหน อย่างไร สามารถถามมาได้เต็มที่ครับ

Re: สอบถามการเขียน VBA ครับ (มือใหม่หัดเขียนครับ)

Posted: Fri Jul 21, 2017 9:33 pm
by Jarupong
ขอบคุณ อ. ที่ชี้แนะวิธีโฟสต์ Code ครับ เรื่องการใช้งาน เจอปัญหาอยู่บ้างครับ คือเจอว่าหลังจาก copy ที่เวลาตามที่ตั้งใว้แล้ว แต่พอถึงรอบเวลาใหม่ คือ 5 นาทีถัดมา ข้อมูลที่คัดลอกใว้ก่อนหน้า มีการเปลี่ยนแปลงค่าไปตามข้อมูลที่เข้ามาใหม่ครับในแถวของcolumn C,D,E... ใน Sheet Deal,Vbuy, Vsell ครับ

Code: Select all

Sub CopyByTime()
'
' CopyByTime Macro
'

'
    If Sheets("Master").Range("d2").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c2").Value Then
    Sheets("DataPaste").Select
    Range("A1").Select
    Sheets("BZ_RTD").Select
    Range("A1:A51,C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("A1").Select
    ActiveSheet.Paste
    Range("A1").Select
    
    Sheets("BZ_RTD").Select
    Range("A1:A51,C1:C51").Select
    Selection.Copy
    Sheets("Deal").Select
    Range("A1").Select
    ActiveSheet.Paste
    Range("A1").Select
    
    Sheets("BZ_RTD").Select
    Range("A1:A51,F1:F51").Select
    Selection.Copy
    Sheets("Vbuy").Select
    Range("A1").Select
    ActiveSheet.Paste
    Range("A1").Select
    
    Sheets("BZ_RTD").Select
    Range("A1:A51,G1:G51").Select
    Selection.Copy
    Sheets("Vsell").Select
    Range("A1").Select
    ActiveSheet.Paste
    Range("A1").Select
    
    End If
        
    
    If Sheets("Master").Range("d3").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c3").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("E1").Select
    ActiveSheet.Paste
    Range("E1").Select
    
    Sheets("BZ_RTD").Select
    Range("C1:C51").Select
    Selection.Copy
    Sheets("Deal").Select
    Range("C1").Select
    ActiveSheet.Paste
    Range("C1").Select
    
    
    Sheets("BZ_RTD").Select
    Range("F1:F51").Select
    Selection.Copy
    Sheets("Vbuy").Select
    Range("C1").Select
    ActiveSheet.Paste
    Range("C1").Select
    
    
    Sheets("BZ_RTD").Select
    Range("G1:G51").Select
    Selection.Copy
    Sheets("Vsell").Select
    Range("C1").Select
    ActiveSheet.Paste
    Range("C1").Select
    
    
    
    End If
    
    
    If Sheets("Master").Range("d4").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c4").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("h1").Select
    ActiveSheet.Paste
    Range("h1").Select
    
    
    Sheets("BZ_RTD").Select
    Range("C1:C51").Select
    Selection.Copy
    Sheets("Deal").Select
    Range("D1").Select
    ActiveSheet.Paste
    Range("D1").Select
    
    
    Sheets("BZ_RTD").Select
    Range("F1:F51").Select
    Selection.Copy
    Sheets("Vbuy").Select
    Range("D1").Select
    ActiveSheet.Paste
    Range("D1").Select
    
    
    Sheets("BZ_RTD").Select
    Range("G1:G51").Select
    Selection.Copy
    Sheets("Vsell").Select
    Range("D1").Select
    ActiveSheet.Paste
    Range("D1").Select
    
    End If


    If Sheets("Master").Range("d5").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c5").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("k1").Select
    ActiveSheet.Paste
    Range("k1").Select
    
    Sheets("BZ_RTD").Select
    Range("C1:C51").Select
    Selection.Copy
    Sheets("Deal").Select
    Range("e1").Select
    ActiveSheet.Paste
    Range("e1").Select
    
    
    Sheets("BZ_RTD").Select
    Range("F1:F51").Select
    Selection.Copy
    Sheets("Vbuy").Select
    Range("e1").Select
    ActiveSheet.Paste
    Range("e1").Select
    
    
    Sheets("BZ_RTD").Select
    Range("G1:G51").Select
    Selection.Copy
    Sheets("Vsell").Select
    Range("e1").Select
    ActiveSheet.Paste
    Range("e1").Select
    
    
    
    End If

    If Sheets("Master").Range("d6").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c6").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("n1").Select
    ActiveSheet.Paste
    Range("n1").Select
    
        Sheets("BZ_RTD").Select
    Range("C1:C51").Select
    Selection.Copy
    Sheets("Deal").Select
    Range("f1").Select
    ActiveSheet.Paste
    Range("f1").Select
    
    
    Sheets("BZ_RTD").Select
    Range("F1:F51").Select
    Selection.Copy
    Sheets("Vbuy").Select
    Range("f1").Select
    ActiveSheet.Paste
    Range("f1").Select
    
    
    Sheets("BZ_RTD").Select
    Range("G1:G51").Select
    Selection.Copy
    Sheets("Vsell").Select
    Range("f1").Select
    ActiveSheet.Paste
    Range("f1").Select
    
    End If
    
        If Sheets("Master").Range("d7").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c7").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("q1").Select
    ActiveSheet.Paste
    Range("q1").Select
    
        Sheets("BZ_RTD").Select
    Range("C1:C51").Select
    Selection.Copy
    Sheets("Deal").Select
    Range("g1").Select
    ActiveSheet.Paste
    Range("g1").Select
    
    
    Sheets("BZ_RTD").Select
    Range("F1:F51").Select
    Selection.Copy
    Sheets("Vbuy").Select
    Range("g1").Select
    ActiveSheet.Paste
    Range("g1").Select
    
    
    Sheets("BZ_RTD").Select
    Range("G1:G51").Select
    Selection.Copy
    Sheets("Vsell").Select
    Range("g1").Select
    ActiveSheet.Paste
    Range("g1").Select
    
    End If
    
    '***** TBD
        If Sheets("Master").Range("d8").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c8").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("t1").Select
    ActiveSheet.Paste
    Range("t1").Select
    
    Sheets("BZ_RTD").Select
    Range("C1:C51").Select
    Selection.Copy
    Sheets("Deal").Select
    Range("t1").Select
    ActiveSheet.Paste
    Range("t1").Select
    
    
    Sheets("BZ_RTD").Select
    Range("F1:F51").Select
    Selection.Copy
    Sheets("Vbuy").Select
    Range("t1").Select
    ActiveSheet.Paste
    Range("t1").Select
    
    
    Sheets("BZ_RTD").Select
    Range("G1:G51").Select
    Selection.Copy
    Sheets("Vsell").Select
    Range("t1").Select
    ActiveSheet.Paste
    Range("t1").Select

    
    
    End If
    
        If Sheets("Master").Range("d9").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c9").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("w1").Select
    ActiveSheet.Paste
    Range("w1").Select
    
        Sheets("BZ_RTD").Select
    Range("C1:C51").Select
    Selection.Copy
    Sheets("Deal").Select
    Range("w1").Select
    ActiveSheet.Paste
    Range("w1").Select
    
    
    Sheets("BZ_RTD").Select
    Range("F1:F51").Select
    Selection.Copy
    Sheets("Vbuy").Select
    Range("w1").Select
    ActiveSheet.Paste
    Range("w1").Select
    
    
    Sheets("BZ_RTD").Select
    Range("G1:G51").Select
    Selection.Copy
    Sheets("Vsell").Select
    Range("w1").Select
    ActiveSheet.Paste
    Range("w1").Select
    
    
    End If
    
        If Sheets("Master").Range("d10").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c10").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("z1").Select
    ActiveSheet.Paste
    Range("z1").Select
    
        Sheets("BZ_RTD").Select
    Range("C1:C51").Select
    Selection.Copy
    Sheets("Deal").Select
    Range("z1").Select
    ActiveSheet.Paste
    Range("z1").Select
    
    
    Sheets("BZ_RTD").Select
    Range("F1:F51").Select
    Selection.Copy
    Sheets("Vbuy").Select
    Range("z1").Select
    ActiveSheet.Paste
    Range("z1").Select
    
    
    Sheets("BZ_RTD").Select
    Range("G1:G51").Select
    Selection.Copy
    Sheets("Vsell").Select
    Range("z1").Select
    ActiveSheet.Paste
    Range("z1").Select
    
    End If
    
        If Sheets("Master").Range("d11").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c11").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("ac1").Select
    ActiveSheet.Paste
    Range("ac1").Select
    
        Sheets("BZ_RTD").Select
    Range("C1:C51").Select
    Selection.Copy
    Sheets("Deal").Select
    Range("ac1").Select
    ActiveSheet.Paste
    Range("ac1").Select
    
    
    Sheets("BZ_RTD").Select
    Range("F1:F51").Select
    Selection.Copy
    Sheets("Vbuy").Select
    Range("ac1").Select
    ActiveSheet.Paste
    Range("ac1").Select
    
    
    Sheets("BZ_RTD").Select
    Range("G1:G51").Select
    Selection.Copy
    Sheets("Vsell").Select
    Range("ac1").Select
    ActiveSheet.Paste
    Range("ac1").Select

    
    End If
    
        If Sheets("Master").Range("d12").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c12").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("af1").Select
    ActiveSheet.Paste
    Range("af1").Select
    
        Sheets("BZ_RTD").Select
    Range("C1:C51").Select
    Selection.Copy
    Sheets("Deal").Select
    Range("af1").Select
    ActiveSheet.Paste
    Range("af1").Select
    
    
    Sheets("BZ_RTD").Select
    Range("F1:F51").Select
    Selection.Copy
    Sheets("Vbuy").Select
    Range("af1").Select
    ActiveSheet.Paste
    Range("af1").Select
    
    
    Sheets("BZ_RTD").Select
    Range("G1:G51").Select
    Selection.Copy
    Sheets("Vsell").Select
    Range("af1").Select
    ActiveSheet.Paste
    Range("af1").Select

    End If
    
        If Sheets("Master").Range("d13").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c13").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("ai1").Select
    ActiveSheet.Paste
    Range("ai1").Select
    
    Sheets("BZ_RTD").Select
    Range("C1:C51").Select
    Selection.Copy
    Sheets("Deal").Select
    Range("ai1").Select
    ActiveSheet.Paste
    Range("ai1").Select
    
    
    Sheets("BZ_RTD").Select
    Range("F1:F51").Select
    Selection.Copy
    Sheets("Vbuy").Select
    Range("ai1").Select
    ActiveSheet.Paste
    Range("ai1").Select
    
    
    Sheets("BZ_RTD").Select
    Range("G1:G51").Select
    Selection.Copy
    Sheets("Vsell").Select
    Range("ai1").Select
    ActiveSheet.Paste
    Range("ai1").Select
    
    End If
    
    '*****
        If Sheets("Master").Range("d14").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c14").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("al1").Select
    ActiveSheet.Paste
    Range("al1").Select
    End If
    
        If Sheets("Master").Range("d15").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c15").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("ao1").Select
    ActiveSheet.Paste
    Range("ao1").Select
    End If
    
        If Sheets("Master").Range("d16").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c16").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("ar1").Select
    ActiveSheet.Paste
    Range("ar1").Select
    End If
    
        If Sheets("Master").Range("d17").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c17").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("au1").Select
    ActiveSheet.Paste
    Range("au1").Select
    End If
    
        If Sheets("Master").Range("d18").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c18").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("ax1").Select
    ActiveSheet.Paste
    Range("ax1").Select
    End If
    
        If Sheets("Master").Range("d19").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c19").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("ba1").Select
    ActiveSheet.Paste
    Range("ba1").Select
    End If
    
        If Sheets("Master").Range("d20").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c20").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("bd1").Select
    ActiveSheet.Paste
    Range("bd1").Select
    End If
    
        If Sheets("Master").Range("d21").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c21").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("bg1").Select
    ActiveSheet.Paste
    Range("bg1").Select
    End If
    
        If Sheets("Master").Range("d22").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c22").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("bj1").Select
    ActiveSheet.Paste
    Range("bj1").Select
    End If
    
        If Sheets("Master").Range("d23").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c23").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("bm1").Select
    ActiveSheet.Paste
    Range("bm1").Select
    End If
    
        If Sheets("Master").Range("d24").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c24").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("bp1").Select
    ActiveSheet.Paste
    Range("bp1").Select
    End If
    
        If Sheets("Master").Range("d25").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c25").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("bs1").Select
    ActiveSheet.Paste
    Range("bs1").Select
    End If
    
        If Sheets("Master").Range("d26").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c26").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("bv1").Select
    ActiveSheet.Paste
    Range("bv1").Select
    End If
    
        If Sheets("Master").Range("d27").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c27").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("by1").Select
    ActiveSheet.Paste
    Range("by1").Select
    End If
    
        If Sheets("Master").Range("d28").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c28").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("cb1").Select
    ActiveSheet.Paste
    Range("cb1").Select
    End If
    
        If Sheets("Master").Range("d29").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c29").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("ce1").Select
    ActiveSheet.Paste
    Range("ce1").Select
    End If
    
        If Sheets("Master").Range("d30").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c30").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("ch1").Select
    ActiveSheet.Paste
    Range("ch1").Select
    End If
    
        If Sheets("Master").Range("d31").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c31").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("ck1").Select
    ActiveSheet.Paste
    Range("ck1").Select
    End If
    
        If Sheets("Master").Range("d32").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c32").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("cn1").Select
    ActiveSheet.Paste
    Range("cn1").Select
    End If
    
        If Sheets("Master").Range("d33").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c33").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("cq1").Select
    ActiveSheet.Paste
    Range("cq1").Select
    End If
    
        If Sheets("Master").Range("d34").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c34").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("ct1").Select
    ActiveSheet.Paste
    Range("ct1").Select
    End If
    
        If Sheets("Master").Range("d35").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c35").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("cw1").Select
    ActiveSheet.Paste
    Range("cw1").Select
    End If
    
        If Sheets("Master").Range("d36").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c36").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("cz1").Select
    ActiveSheet.Paste
    Range("cz1").Select
    End If
    
        If Sheets("Master").Range("d37").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c37").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("dc1").Select
    ActiveSheet.Paste
    Range("dc1").Select
    End If
    
        If Sheets("Master").Range("d38").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c38").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("df1").Select
    ActiveSheet.Paste
    Range("df1").Select
    End If
    
        If Sheets("Master").Range("d39").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c39").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("di1").Select
    ActiveSheet.Paste
    Range("di1").Select
    End If
    
        If Sheets("Master").Range("d40").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c40").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("dl1").Select
    ActiveSheet.Paste
    Range("dl1").Select
    End If
    
        If Sheets("Master").Range("d41").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c41").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("do1").Select
    ActiveSheet.Paste
    Range("do1").Select
    End If
    
        If Sheets("Master").Range("d42").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c42").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("dr1").Select
    ActiveSheet.Paste
    Range("dr1").Select
    End If
    
        If Sheets("Master").Range("d43").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c43").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("du1").Select
    ActiveSheet.Paste
    Range("du1").Select
    End If
    
        If Sheets("Master").Range("d44").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c44").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("dx1").Select
    ActiveSheet.Paste
    Range("dx1").Select
    End If
    
        If Sheets("Master").Range("d45").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c45").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("ea1").Select
    ActiveSheet.Paste
    Range("ea1").Select
    End If
    
        If Sheets("Master").Range("d46").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c46").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("ed1").Select
    ActiveSheet.Paste
    Range("ed1").Select
    End If
    
        If Sheets("Master").Range("d47").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c47").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("eg1").Select
    ActiveSheet.Paste
    Range("eg1").Select
    End If
    
        If Sheets("Master").Range("d48").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c48").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("ej1").Select
    ActiveSheet.Paste
    Range("ej1").Select
    End If
    
        If Sheets("Master").Range("d49").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c49").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("em1").Select
    ActiveSheet.Paste
    Range("em1").Select
    End If
    
        If Sheets("Master").Range("d50").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c50").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("ep1").Select
    ActiveSheet.Paste
    Range("ep1").Select
    End If
    
        If Sheets("Master").Range("d51").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c51").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("es1").Select
    ActiveSheet.Paste
    Range("es1").Select
    End If
    
        If Sheets("Master").Range("d52").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c52").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("ev1").Select
    ActiveSheet.Paste
    Range("ev1").Select
    End If
    
        If Sheets("Master").Range("d53").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c53").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("ey1").Select
    ActiveSheet.Paste
    Range("ey1").Select
    End If
    
        If Sheets("Master").Range("d54").Value > Sheets("Master").Range("a1").Value And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c54").Value Then
    Sheets("BZ_RTD").Select
    Range("C1:C51,F1:G51").Select
    Selection.Copy
    Sheets("DataPaste").Select
    Range("fb1").Select
    ActiveSheet.Paste
    Range("fb1").Select
    End If
    
        
End Sub

Re: สอบถามการเขียน VBA ครับ (มือใหม่หัดเขียนครับ)

Posted: Fri Jul 21, 2017 9:38 pm
by Jarupong
ตัวอย่างปัญหาที่เจอครับ จะเกิดใน Sheet Deal,Vbuy,Vsell ครับ
05.JPG
05.JPG (26.31 KiB) Viewed 143 times

Re: สอบถามการเขียน VBA ครับ (มือใหม่หัดเขียนครับ)

Posted: Fri Jul 21, 2017 10:20 pm
by snasui
Jarupong wrote:ขอบคุณ อ. ที่ชี้แนะวิธีโฟสต์ Code ครับ เรื่องการใช้งาน เจอปัญหาอยู่บ้างครับ คือเจอว่าหลังจาก copy ที่เวลาตามที่ตั้งใว้แล้ว แต่พอถึงรอบเวลาใหม่ คือ 5 นาทีถัดมา ข้อมูลที่คัดลอกใว้ก่อนหน้า มีการเปลี่ยนแปลงค่าไปตามข้อมูลที่เข้ามาใหม่ครับในแถวของcolumn C,D,E... ใน Sheet Deal,Vbuy, Vsell ครับ
:D จากปัญหาดังกล่าวต้องการให้แสดงผลเป็นอย่างไร กรุณาแนบไฟล์ Excel ที่มี Code เรียบร้อยแล้วมาด้วยจะได้สะดวกในการตรวจสอบครับ

Re: สอบถามการเขียน VBA ครับ (มือใหม่หัดเขียนครับ)

Posted: Fri Jul 21, 2017 11:02 pm
by Jarupong
ผมได้แนบไฟล์ excel ตัวอย่างครับ อ.
170720.4_BN.xlsm
Trial file
(120.56 KiB) Downloaded 13 times
error ที่เกิดขึนเมื่อเขียน code ทั้งหมดปรากฏว่าโปรแกรมฟ้องว่า Code ยาวเกินไปครับ
Code Error
Code Error
06.PNG (117.95 KiB) Viewed 137 times
คำสั่ง copy ทำงานผิดพลาดเนื่องจากค่าใน cell ซ้ำกันทั้งที่ copy คนละเวลาครับ
Copy Error
Copy Error
04.PNG (152.4 KiB) Viewed 137 times

Re: สอบถามการเขียน VBA ครับ (มือใหม่หัดเขียนครับ)

Posted: Fri Jul 21, 2017 11:30 pm
by snasui
:D ตัวอย่าง Code แบบกระชับครับ

Code: Select all

If Sheets("Master").Range("d2").Value > Sheets("Master").Range("a1").Value _
    And Sheets("Master").Range("a1").Value >= Sheets("Master").Range("c2").Value Then
    Sheets("BZ_RTD").Range("A1:A51,C1:C51,F1:G51").Copy Sheets("DataPaste").Range("A1")
    Sheets("BZ_RTD").Range("A1:A51,C1:C51").Copy Sheets("Deal").Range("A1")
    Sheets("BZ_RTD").Range("A1:A51,F1:F51").Copy Sheets("Vbuy").Range("A1")
    Sheets("BZ_RTD").Range("A1:A51,G1:G51").Copy Sheets("Vsell").Range("A1")
End If
'...Other code

Re: สอบถามการเขียน VBA ครับ (มือใหม่หัดเขียนครับ)

Posted: Sat Jul 22, 2017 5:02 am
by Jarupong
ขอบคุณ อ. ที่ช่วยชี้แนะ code ที่กระชับกว่าเดิมครับ เดี๋ยววันนี้ลองเขียนต่อและแจ้งผลให้ทราบครับ

Re: สอบถามการเขียน VBA ครับ (มือใหม่หัดเขียนครับ)

Posted: Sat Jul 22, 2017 9:55 am
by Jarupong
ใช้ Code ตัวอย่างจาก อ. ตอนนี้ทำงานได้แล้วครบ ขอบคณมากครับ อ.
07.PNG
07.PNG (70 KiB) Viewed 120 times