Page 1 of 1

ดึงข้อมูลในทุกไฟล์ ที่อยู่ใน folder ติดdebug อย่างนี้แก้ไขอย่างไรครับ

Posted: Mon Aug 15, 2022 8:25 pm
by nutpochan
ผมต้องการ ดึงไฟล์จาก excell โดยข้อมูล เป็นไดนามิกไม่เหมือนกันในทุกๆวัน และ ชื่อไฟล์เป็นไดนามิกไม่เหมือนกันใน ทุกๆวัน

โดยผมได้เขียนโค๊ด นี้ครับ แต่ติดไม่รู้ว่าจะแก้อย่างไร

Code: Select all

 Dim wb As Workbook, s As Worksheet, db As Worksheet
    Dim strPath As Variant, i As Integer, f As Byte
    strPath = Application.GetOpenFilename( _
        FileFilter:="Excel File (*.xls*),*.xls*", _
        MultiSelect:=True)
    If TypeName(strPath) = "Boolean" Then Exit Sub
    Set db = ThisWorkbook.Sheets(1)
    db.UsedRange.ClearContents
    Application.ScreenUpdating = False
    For i = 1 To UBound(strPath)
        For Each s In wb.Worksheets
            f = IIf(db.Range("a1").Value = "", 1, 0)
            If s.Range("a1").Value <> "" Then
                s.UsedRange.Offset(f, 0).Copy
                With db
                    .Range("a" &amp; .Rows.Count).End(xlUp).Offset(f, 0)
                        .PasteSpecial xlPasteValues
                End With
            End If
        Next s
        wb.Close
        Application.CutCopyMode = False
    Next i
    Application.ScreenUpdating = True
    MsgBox "Finished", vbInformation
ตัวอย่างงานที่ดึงเสร็จแล้ว จะนำมาต่อกันลงมาด้านล่าง ของคอลัมครับ ไฟล์ ตัวอย่างที่ดึงแล้วผมอัปโหลดใว้แล้วครับ

ผมควรจะแก้โค๊ดตรงไหนบ้าง

Re: ดึงข้อมูลในทุกไฟล์ ที่อยู่ใน folder ติดdebug อย่างนี้แก้ไขอย่างไรครับ

Posted: Mon Aug 15, 2022 8:58 pm
by snasui
:D กรุณาแนบไฟล์ที่มี Code มาด้วย ไฟล์ที่จะแนบ Code มาได้อย่างน้อยต้องมีนามสกุลเป็น .xlsm ไม่ใช่ .xlsx ครับ

Re: ดึงข้อมูลในทุกไฟล์ ที่อยู่ใน folder ติดdebug อย่างนี้แก้ไขอย่างไรครับ

Posted: Mon Aug 15, 2022 10:06 pm
by nutpochan
ผมต้องการ ดึงไฟล์จาก excell โดยข้อมูล เป็นไดนามิกไม่เหมือนกันในทุกๆวัน และ ชื่อไฟล์เป็นไดนามิกไม่เหมือนกันใน ทุกๆวัน

โดยผมได้เขียนโค๊ด นี้ครับ แต่ติดไม่รู้ว่าจะแก้อย่างไร


ตัวอย่างงานที่ดึงเสร็จแล้ว จะนำมาต่อกันลงมาด้านล่าง ของคอลัมครับ ไฟล์ ตัวอย่างที่ดึงแล้วผมอัปโหลดใว้แล้วครับ

ผมควรจะแก้โค๊ดตรงไหนบ้าง

Re: ดึงข้อมูลในทุกไฟล์ ที่อยู่ใน folder ติดdebug อย่างนี้แก้ไขอย่างไรครับ

Posted: Tue Aug 16, 2022 6:43 am
by snasui
:D ในโอกาสถัดไปนำ Code มาจากไหนกรุณาระบุแหล่งที่มาไว้ด้วยครับ

ตัวอย่างการปรับ Code ตามด้านล่างครับ

Code: Select all

Dim wb As Workbook, s As Worksheet, db As Worksheet
Dim strPath As Variant, i As Integer, f As Byte
strPath = Application.GetOpenFilename( _
    FileFilter:="Excel File (*.xls*),*.xls*", _
    MultiSelect:=True)
If TypeName(strPath) = "Boolean" Then Exit Sub
Set db = ThisWorkbook.Sheets(1)
db.UsedRange.ClearContents
Application.DisplayAlerts = False
Application.ScreenUpdating = False
For i = 1 To UBound(strPath)
    Set wb = Workbooks.Open(strPath(i), False, True)
    For Each s In wb.Worksheets
        s.UsedRange.Copy
        With db
            .Range("a" & .Rows.Count).End(xlUp).Offset(1, 0) _
                .PasteSpecial xlPasteValues
        End With
    Next s
    wb.Close False
    Application.CutCopyMode = False
Next i
Application.DisplayAlerts = True
Application.ScreenUpdating = True
MsgBox "Finished", vbInformation

Re: ดึงข้อมูลในทุกไฟล์ ที่อยู่ใน folder ติดdebug อย่างนี้แก้ไขอย่างไรครับ

Posted: Tue Aug 16, 2022 12:52 pm
by nutpochan
สำเร็จแล้วครับ ของคุณครับ

ที่เขียน code สำเร็จได้เพราะ นำตัวอย่าง มาจากอาจารย์ snasui ในเว็บไซต์นั้นะครับ

https://snasui.com/wordpress/collect-by-condition/

Re: ดึงข้อมูลในทุกไฟล์ ที่อยู่ใน folder ติดdebug อย่างนี้แก้ไขอย่างไรครับ

Posted: Tue Aug 16, 2022 2:31 pm
by nutpochan
nutpochan wrote: Tue Aug 16, 2022 12:52 pm สำเร็จแล้วครับ ขอบคุณครับ

ที่เขียน code สำเร็จได้เพราะ นำตัวอย่าง มาจาก อาจารย์ snasui ในเว็บไซต์นี้นะครับ

https://snasui.com/wordpress/collect-by-condition/