Page 1 of 1

อยากให้โค้ด สั้น กว่านี้

Posted: Fri Aug 09, 2013 11:54 pm
by zean

Code: Select all

Sub test1()

Dim ws As Worksheet
Dim r As Integer
Dim rn As Range

Set ws = ActiveSheet

r = ws.Range("A" & ws.Rows.Count).End(xlUp).Row

Worksheets(1).Range("C15").Copy _
Worksheets(2).Range("A15")


Worksheets(1).Range("M15").Copy _
Worksheets(2).Range("K15")


Worksheets(1).Range("M20").Copy _
Worksheets(2).Range("K20")


Worksheets(1).Range("C20").Copy _
Worksheets(2).Range("A20")

Worksheets(2).Select
ActiveSheet.Select


MsgBox "COMPLETED"

End Sub
คืมผมต้องการ copy cell หลาย cell น่ะครับ ประมาณ 30 cell ได้ ดูแ้ล้วมันจะยาวเกิน

จึง อยาก ให้โค้ด สั้นกว่านี้ ช่วยชี้ แนะ หน่อยครับ

Re: อยากให้โค้ด สั้น กว่านี้

Posted: Sat Aug 10, 2013 8:00 am
by snasui
:D ตัวอย่างการปรับ Code ให้สั้นตามด้านล่างครับ

Code: Select all

Sub test()
    Dim rs, rt, i%
    rs = Array("a1", "b10", "c3", "d9", "a8")
    rt = Array("e1", "d1", "c1", "b1", "a1")
    For i = 0 To UBound(rt)
        Sheets(2).Range(rt(i)) = Sheets(1).Range(rs(i))
    Next i
    MsgBox "COMPLETED"
End Sub
สำหรับการใช้ Code ให้เน้นที่เราเข้าใจได้เอง ปรับปรุงได้เอง เรื่องความสั้นกระชับเป็นเรื่องรอง ต่อเมื่อคล่องแล้วจะสามารถปรับปรุง Code ให้สั้นลงได้เองครับ

Re: อยากให้โค้ด สั้น กว่านี้

Posted: Sat Aug 10, 2013 6:35 pm
by zean
ขอบคุณ สำหรับ โค้ด และ คำแนะนำครับ