Page 1 of 1

รบกวนสอบถามข้อมูลไม่เรียงจากเซลล์ A1

Posted: Tue Dec 03, 2013 2:43 pm
by RoBBie
สวัสดีครับ ขอความช่วยเหลือด้วยครับ
ประมาณว่า ผมต้องการรวมข้อมูลจากหลายๆ File เพื่อให้มารวมใน sheet เดียวครับ
เมื่อผมลองเขียน Code ดูปรากฏว่า สามารถ Copy ข้อมูลได้ทุกไฟล์และเรียงจาก A1-A50 ได้ตามปกติ ในsheetเดียว แต่ผมลองทำการลบข้อมูล ที่รวมไว้ใน sheet เดียว แล้วลอง Run Code ดูอีกที ปรากฏว่า ข้อมูลจะถูกเริ่มต้นที่ Cell สุดท้ายที่เคยได้ Run ข้อมูล เช่น Runครั้งที่ 1 เก็บข้อมูลตั้งแต่ A1-A30 ทำการลบข้อมูล A1-A30 Run ครั้งที่ 2 ปรากฏว่า ข้อมูลเเริ่มต้นตั้งแต่ A31 เป็นต้นไป
ส่วนไฟล์ที่เป็น Data เป็นไฟล์ .CSV ครับ มีทั้งหมด 10 ไฟล์

คำถาม! อยากทราบว่าต้องทำอย่างไร ข้อมูลที่ทำการ Run Code จึงมาอยู่ที่ A1 และต่อกันไปเรื่อยๅครับ

ปล. ผมพึ่งเริ่มหัดทำ VBA นครับ

Code: Select all

Public Sub copy1floder()
Set cell_to_paste_next_dataset = Cells(1, 1)
Set active_workbook = ActiveWorkbook
Set active_sheet = ActiveSheet
Application.DisplayAlerts = False



File_Path = "E:\Excel\¢éÍÁÙÅÊӤѭÇÒ§¢éÍÁÙÅ·Õè¹Õè"
strName = Dir(File_Path & "\" & "*.csv")

Do While strName <> vbNullString

If active_workbook.Name <> strName And strName <> "" Then
    Workbooks.Open Filename:=File_Path & "\" & strName
                Set dataset_workbook = ActiveWorkbook
                        Range(ActiveCell.SpecialCells(xlLastCell), Cells(1)).Copy
                        active_sheet.Activate
            Cells(ActiveCell.SpecialCells(xlLastCell).Row, 1).Select
With [a655350].Offset.End(xlUp)
End With

ActiveSheet.Paste
dataset_workbook.Close
End If
strName = Dir
Loop
Application.DisplayAlerts = True
End Sub

Re: รบกวนสอบถามข้อมูลไม่เรียงจากเซลล์ A1

Posted: Tue Dec 03, 2013 4:55 pm
by snasui
:D แนบตัวอย่างไฟล์ .csv มาสักสองไฟล์เพื่อจะได้ช่วยทดสอบได้ครับ

Re: รบกวนสอบถามข้อมูลไม่เรียงจากเซลล์ A1

Posted: Tue Dec 03, 2013 9:03 pm
by RoBBie
ในfile CSV จะเป็นการเรียงข้อมูลเพียง Cell A เพียงอย่างเดียวครับ
ข้อมูลสำคัญวางข้อมูลที่นี่.rar

Re: รบกวนสอบถามข้อมูลไม่เรียงจากเซลล์ A1

Posted: Tue Dec 03, 2013 9:21 pm
by snasui
:D ลองปรับ Code เป็นตามด้านล่างครับ

Code: Select all

Public Sub copy1floder()
    Set cell_to_paste_next_dataset = Cells(1, 1)
    Set active_workbook = ActiveWorkbook
    Set active_sheet = ActiveSheet
    Application.DisplayAlerts = False
    
    File_Path = "E:\Excel\ข้อมูลสำคัญวางข้อมูลที่นี่"
    strName = Dir(File_Path & "\" & "*.csv")
    
    Do While strName <> vbNullString
        
        If active_workbook.Name <> strName And strName <> "" Then
            Workbooks.Open Filename:=File_Path & "\" & strName
            Set dataset_workbook = ActiveWorkbook
            Range(ActiveCell.SpecialCells(xlLastCell), Cells(1)).Copy
            active_sheet.Activate
            [a655350].End(xlUp).Offset(1, 0).Select
            ActiveSheet.Paste
            dataset_workbook.Close
        End If
        strName = Dir
    Loop
    Application.DisplayAlerts = True
End Sub

Re: รบกวนสอบถามข้อมูลไม่เรียงจากเซลล์ A1

Posted: Wed Dec 04, 2013 2:09 pm
by RoBBie
ขอบคุณมากครับ ที่ให้ความรู้ ใช้งานได้แล้ว ผมอยากทราบว่า codeที่ผมเขียน มันไม่ถูกต้องตรงไหนครับ ผมจะได้วิเคราะห์ และได้นำไปศึกษาต่อครับ

Re: รบกวนสอบถามข้อมูลไม่เรียงจากเซลล์ A1

Posted: Wed Dec 04, 2013 2:12 pm
by snasui
:D ที่เขียนมานั้นเป็นการวางที่ Last Cell สำหรับ Last Cell คือเซลล์สุดท้ายที่เคยมีการใช้งาน การนำข้อมูลมาวางต่อเนื่องลงไปด้านล่างโดยดู Last Cell จึงไม่ตรงกับสิ่งต้องการจะทำอยู่นี้ ควรจะดูเซลล์สุดท้ายที่มีข้อมูลแทนดู Last Cell ครับ