Page 1 of 1

สอบถาม การดึงข้อมูลจากหลาย ๆ ไฟด์ โดยการพิมพ์ รหัสหรือข้อควา

Posted: Fri Apr 18, 2014 10:25 am
by rawin9999
สวัสดีครับ
อยากจะขอสอบถามการดึงข้อมูลจากหลาย ๆ ไฟด์ โดยการพิมพ์ รหัสหรือข้อความตามชื่อ ไฟด์ ก็จะดึงข้อความด้านในรวมในไฟด์ excel เดียวครับ


ตามไฟด์แนบจะมีไฟด์ดังนี้ครับ
โดยชื่อไฟด์มี A1,A2,A3
และจะรวบความไว้ที่ Sum

อยากรวบรวมข้อความที่อยู่ใน A1,A2,S3 มารวมที่ sum โดยที่พิมพ์ชื่อไฟด์ อย่างเดียวครับ

รบกวนด้วยครับ ขอบคุณครับ
:geek:

Re: สอบถาม การดึงข้อมูลจากหลาย ๆ ไฟด์ โดยการพิมพ์ รหัสหรือข้

Posted: Fri Apr 18, 2014 10:58 am
by tupthai
ลองดูตัวอย่าง ตามนี้ครับ
wordpress/collecting-data-from-all-files/

Re: สอบถาม การดึงข้อมูลจากหลาย ๆ ไฟด์ โดยการพิมพ์ รหัสหรือข้

Posted: Fri Apr 18, 2014 2:24 pm
by rawin9999
ขอบคุณมากครับ แต่ยังงง อยู่มากครับ รบกวนผู้รู้มีวิธีอื่นหรือทำให้ผมได้รึเปล่าครับตามไฟด์ที่แนบ ขอบคุณครับ

Re: สอบถาม การดึงข้อมูลจากหลาย ๆ ไฟด์ โดยการพิมพ์ รหัสหรือข้

Posted: Fri Apr 18, 2014 2:28 pm
by bank9597
rawin9999 wrote:ขอบคุณมากครับ แต่ยังงง อยู่มากครับ รบกวนผู้รู้มีวิธีอื่นหรือทำให้ผมได้รึเปล่าครับตามไฟด์ที่แนบ ขอบคุณครับ
:D ลองเอาโค๊ดนี้ไปรันดูครับ

สามารถเลือกไฟล์ที่ต้องการได้เลย เลือกทีละหลายไฟล์ก็ได้ครับ

ข้อมูลจะถูกดึงมาวางเรียงกันในชีทเดียว

เครดิต: snasui

Code: Select all

Option Explicit
Sub CollectData()
    Dim sh As Worksheet, thisBook As Workbook, strThisbook As Variant
    Dim ob As Workbook, i As Integer, rRow As Long, tg As Range
    
    Set ob = ThisWorkbook
    ob.Sheets(1).UsedRange.Clear
    strThisbook = Application.GetOpenFilename(Filefilter:= _
            "All File (*.*), *.*", Title:="Please select source file(s).", MultiSelect:=True)
    If TypeName(strThisbook) = "Boolean" Then
        MsgBox "Please select file(s)."
        Exit Sub
    End If
    rRow = 1
    For i = 1 To UBound(strThisbook)
        Set thisBook = Workbooks.Open(strThisbook(i))
        Application.ScreenUpdating = False
        For Each sh In thisBook.Worksheets
            sh.UsedRange.Copy
            ob.Sheets(1).Range("a" & rRow).PasteSpecial xlPasteValues
            rRow = ob.Sheets(1).UsedRange.Rows.Count + 1
            Application.CutCopyMode = False
        Next sh
        thisBook.Saved = True
        thisBook.Close
    Next i
    Application.ScreenUpdating = True
    MsgBox "Data already collected."
End Sub

Re: สอบถาม การดึงข้อมูลจากหลาย ๆ ไฟด์ โดยการพิมพ์ รหัสหรือข้

Posted: Fri Apr 18, 2014 5:31 pm
by rawin9999
ขอบคุณมากครับ ใช้ยังงัยครับ

Re: สอบถาม การดึงข้อมูลจากหลาย ๆ ไฟด์ โดยการพิมพ์ รหัสหรือข้

Posted: Sat Apr 19, 2014 1:10 pm
by snasui
bank9597 wrote:ลองเอาโค๊ดนี้ไปรันดูครับ

สามารถเลือกไฟล์ที่ต้องการได้เลย เลือกทีละหลายไฟล์ก็ได้ครับ

ข้อมูลจะถูกดึงมาวางเรียงกันในชีทเดียว

เครดิต: snasui
:D คำตอบที่เป็น VBA ควรตอบผู้ที่ถามเกี่ยวกับ VBA ไม่เช่นนั้นก็จะเกิดปัญหาเรื่องการนำไปใช้เช่นกระทู้นี้ครับ

Re: สอบถาม การดึงข้อมูลจากหลาย ๆ ไฟด์ โดยการพิมพ์ รหัสหรือข้

Posted: Sat Apr 19, 2014 1:12 pm
by snasui
rawin9999 wrote:อยากจะขอสอบถามการดึงข้อมูลจากหลาย ๆ ไฟด์ โดยการพิมพ์ รหัสหรือข้อความตามชื่อ ไฟด์ ก็จะดึงข้อความด้านในรวมในไฟด์ excel เดียวครับ


ตามไฟด์แนบจะมีไฟด์ดังนี้ครับ
โดยชื่อไฟด์มี A1,A2,A3
และจะรวบความไว้ที่ Sum

อยากรวบรวมข้อความที่อยู่ใน A1,A2,S3 มารวมที่ sum โดยที่พิมพ์ชื่อไฟด์ อย่างเดียวครับ

รบกวนด้วยครับ ขอบคุณครับ
:D การทำเช่นนี้ควรอาศัย VBA ซึ่งต้องเขียนมาก่อนตามกฎข้อ 5 ด้านบน :roll: ติดตรงไหนแล้วค่อยถามกันต่อครับ