snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
rawin9999
Member
Posts: 12 Joined: Thu Oct 17, 2013 6:52 pm
#1
Post
by rawin9999 » Fri Apr 18, 2014 10:25 am
สวัสดีครับ
อยากจะขอสอบถามการดึงข้อมูลจากหลาย ๆ ไฟด์ โดยการพิมพ์ รหัสหรือข้อความตามชื่อ ไฟด์ ก็จะดึงข้อความด้านในรวมในไฟด์ excel เดียวครับ
ตามไฟด์แนบจะมีไฟด์ดังนี้ครับ
โดยชื่อไฟด์มี A1,A2,A3
และจะรวบความไว้ที่ Sum
อยากรวบรวมข้อความที่อยู่ใน A1,A2,S3 มารวมที่ sum โดยที่พิมพ์ชื่อไฟด์ อย่างเดียวครับ
รบกวนด้วยครับ ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
rawin9999
Member
Posts: 12 Joined: Thu Oct 17, 2013 6:52 pm
#3
Post
by rawin9999 » Fri Apr 18, 2014 2:24 pm
ขอบคุณมากครับ แต่ยังงง อยู่มากครับ รบกวนผู้รู้มีวิธีอื่นหรือทำให้ผมได้รึเปล่าครับตามไฟด์ที่แนบ ขอบคุณครับ
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#4
Post
by bank9597 » Fri Apr 18, 2014 2:28 pm
rawin9999 wrote: ขอบคุณมากครับ แต่ยังงง อยู่มากครับ รบกวนผู้รู้มีวิธีอื่นหรือทำให้ผมได้รึเปล่าครับตามไฟด์ที่แนบ ขอบคุณครับ
ลองเอาโค๊ดนี้ไปรันดูครับ
สามารถเลือกไฟล์ที่ต้องการได้เลย เลือกทีละหลายไฟล์ก็ได้ครับ
ข้อมูลจะถูกดึงมาวางเรียงกันในชีทเดียว
เครดิต: 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
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
rawin9999
Member
Posts: 12 Joined: Thu Oct 17, 2013 6:52 pm
#5
Post
by rawin9999 » Fri Apr 18, 2014 5:31 pm
ขอบคุณมากครับ ใช้ยังงัยครับ
snasui
Site Admin
Posts: 31257 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#6
Post
by snasui » Sat Apr 19, 2014 1:10 pm
bank9597 wrote: ลองเอาโค๊ดนี้ไปรันดูครับ
สามารถเลือกไฟล์ที่ต้องการได้เลย เลือกทีละหลายไฟล์ก็ได้ครับ
ข้อมูลจะถูกดึงมาวางเรียงกันในชีทเดียว
เครดิต: snasui
คำตอบที่เป็น VBA ควรตอบผู้ที่ถามเกี่ยวกับ VBA ไม่เช่นนั้นก็จะเกิดปัญหาเรื่องการนำไปใช้เช่นกระทู้นี้ครับ
snasui
Site Admin
Posts: 31257 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#7
Post
by snasui » Sat Apr 19, 2014 1:12 pm
rawin9999 wrote: อยากจะขอสอบถามการดึงข้อมูลจากหลาย ๆ ไฟด์ โดยการพิมพ์ รหัสหรือข้อความตามชื่อ ไฟด์ ก็จะดึงข้อความด้านในรวมในไฟด์ excel เดียวครับ
ตามไฟด์แนบจะมีไฟด์ดังนี้ครับ
โดยชื่อไฟด์มี A1,A2,A3
และจะรวบความไว้ที่ Sum
อยากรวบรวมข้อความที่อยู่ใน A1,A2,S3 มารวมที่ sum โดยที่พิมพ์ชื่อไฟด์ อย่างเดียวครับ
รบกวนด้วยครับ ขอบคุณครับ
การทำเช่นนี้ควรอาศัย VBA ซึ่งต้องเขียนมาก่อนตามกฎข้อ 5 ด้านบน
ติดตรงไหนแล้วค่อยถามกันต่อครับ