Page 1 of 1

copy ข้อมูลจาก Sheet Data ไปวางที่ Sheet Result ครับ

Posted: Wed Jan 09, 2013 9:56 am
by niwat2811
ต้องการ copy ข้อมูลจาก Sheet Data ไปวางที่ Sheet Result ครับ โดย Code อยู่ที่ Module1 ชื่อ Process ครับ
โดยที่ Sheet Data ข้อมูลจะอยู่ในช่วง A14:K36 และข้อมูลจะเปลี่ยนไปเรื่อย ๆ เมื่อ Run Macro ที่ชื่อ Process
จะนำข้อมูลไปวางที่ Sheet Result แต่ว่าผลลัพธ์ที่ได้ไม่ตรงกับความต้องการครับ รบกวนผู้รู้ช่วยชี้แนะด้วยครับ ขอบคุณครับ

Re: copy ข้อมูลจาก Sheet Data ไปวางที่ Sheet Result ครับ

Posted: Wed Jan 09, 2013 1:09 pm
by joo
:D ลองปรับโค๊ดแบบนี้ดูครับ

Code: Select all

Sub Process()
    Dim r As Range, ra As Range
     Set ra = Worksheets("Data").Range("A14:K36")
    Set r = Worksheets("Result").Range("B65536").End(xlUp).Offset(1, -1)
    ra.Copy
    r.PasteSpecial xlPasteValues
    Application.CutCopyMode = False
    MsgBox "Finish."
End Sub

Re: copy ข้อมูลจาก Sheet Data ไปวางที่ Sheet Result ครับ

Posted: Wed Jan 09, 2013 1:19 pm
by niwat2811
ขอบคุณมากครับ สำหรับ Code แต่ว่ายังไม่ตรงกับความต้องการครับ ผมอาจจะอธิบายไม่ละเอียด
คือว่า ข้อมูลที่ Sheet Data ช่วง A14:K36 จะเปลี่ยนแปลงไปเรื่อย บางทีก็มีแค่คอลัมภน์ A บางที ก็มีทั้ง A และ B
บางทีก็มีทั้ง A, B, C ซึ่งไม่แน่นอนครับ

Re: copy ข้อมูลจาก Sheet Data ไปวางที่ Sheet Result ครับ

Posted: Wed Jan 09, 2013 2:14 pm
by snasui
:D ลองปรับ Code เป็นตามด้านล่างครับ

Code: Select all

Sub Test0()
    Dim r As Range, ra As Range
    Dim lastRow As Long
    With Sheets("Data")
        Set ra = .Range("A1").SpecialCells(xlCellTypeConstants, 23)
    End With
    lastRow = Sheets("Result").UsedRange.Row + _
        Sheets("Result").UsedRange.Rows.Count
    For Each r In ra
        Sheets("Result").Range("A" & lastRow). _
            Offset(0, r.Column - 1) = r.Value
         lastRow = lastRow + 1
    Next r
End Sub

Re: copy ข้อมูลจาก Sheet Data ไปวางที่ Sheet Result ครับ

Posted: Wed Jan 09, 2013 3:22 pm
by niwat2811
ขอบคุณท่านอาจารย์มากครับ Code ที่ให้มาใช้ได้ตรงตามความต้องการครับ