Page 1 of 1

การคัดลอกข้อมูลหลายคอลัมภ์ โดยที่จำนวนคอลัมภ์ไม่แน่นอนใน Excel (VBA)

Posted: Thu Nov 24, 2016 9:56 pm
by Kanok
:) สอบถามเกี่ยวกับการคัดลอกข้อมูลหลายคอลัมภ์จาก Sheet 1 ไปยัง Sheet 2
โดยที่จำนวนคอลัมภ์ไม่แน่นอนค่ะ โดยใน Sheet 1 จะเริ่ม copy ตั้งแต่ คอลัมภ์ AE ไปจนถึงคอลัมภ์สุดท้าย
แล้วนำไปวางที่ Sheet 2 คอลัมภ์ G ค่ะ


เขียนโค้ดเบื้องต้น มาดังนี้ค่ะ :

Code: Select all

Sub Copymulticolumn()

Dim LC As Integer

LC = Sheets("Sheet1").Cells(1, Columns.Count).End(xlToLeft).Column     

    For i = 31 To LC
    
    Sheets("sheet1").Select
    Columns(i).Copy
    Sheets("sheet2").Select
    Columns(6 + i).Select
    Selection.Paste
   
Next i
   

End Sub
รบกวนขอคำชี้แนะด้วยค่ะ

ไฟล์แนบค่ะ --->
1Q_คัดลอกข้อมูลหลายคอลัมภ์ไปยัง Sheet2.xlsm
[img]
คัดลอกหลายคอลัมภ์ไปยัง%20sheet%202.png
[/img]

Re: การคัดลอกข้อมูลหลายคอลัมภ์ โดยที่จำนวนคอลัมภ์ไม่แน่นอนใน Excel (VBA)

Posted: Thu Nov 24, 2016 11:01 pm
by snasui
:D ตัวอย่างการปรับ Code ตามด้านล่างครับ

Code: Select all

Dim rall As Range
With Sheets("Sheet1")
    Set rall = .Range("ae1", .Range("ae1") _
        .End(xlToRight).Resize(.UsedRange.Rows.Count))
End With
Sheets("Sheet2").Range("g1") _
    .Resize(rall.Rows.Count, rall.Columns.Count).Value = rall.Value

Re: การคัดลอกข้อมูลหลายคอลัมภ์ โดยที่จำนวนคอลัมภ์ไม่แน่นอนใน Excel (VBA)

Posted: Fri Nov 25, 2016 11:30 am
by Kanok
snasui wrote::D ตัวอย่างการปรับ Code ตามด้านล่างครับ

Code: Select all

Dim rall As Range
With Sheets("Sheet1")
    Set rall = .Range("ae1", .Range("ae1") _
        .End(xlToRight).Resize(.UsedRange.Rows.Count))
End With
Sheets("Sheet2").Range("g1") _
    .Resize(rall.Rows.Count, rall.Columns.Count).Value = rall.Value

ขอบคุณมากค่ะ สำหรับการปรับโค้ด สามารถรันได้แล้วค่ะ

รบกวนขอถามท่านอาจารย์ เพิ่มเติมได้ไหมค่ะว่า ในกรณีการคัดลอกข้อมูล เราไม่จำเป็นต้องใช้คำสั่ง copy ก็ได้ใช่ไหมค่ะ

แล้วในกรณีนี้ rall ถูกกำหนดให้เป็นช่วงคอลัมภ์ที่เราต้องการจากนั้นไปที่ Sheet2 เซลล์ g1
คำสั่ง rall.Rows.Count ->เพื่อนับจำนวนแถว, และคำสั่ง rall.Columns.Count -> เพื่อนับจำนวน column
จากนั้น ช่วงเซลล์นี้ (rall.Rows.Count, rall.Columns.Count) มีค่าเท่ากับค่า rall.Value (ซึ่งเป็นค่าใน sheet 1)

ไม่ทราบว่าเข้าใจถูกต้องหรือเปล่าค่ะ ช่วยชี้แนะดด้วยค่ะ เนื่องจากอยากนำสูตรไปปรับใช้ในกรณีอื่นๆอีกค่ะ

ขอบคุณมากค่ะ

Re: การคัดลอกข้อมูลหลายคอลัมภ์ โดยที่จำนวนคอลัมภ์ไม่แน่นอนใน Excel (VBA)

Posted: Fri Nov 25, 2016 5:38 pm
by snasui
:D เข้าใจถูกแล้วครับ