:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

ผมใช้โค้ดของพี่รัน แต่ถ้าผมต้องการเลือกว่าต้องการให้ไฟล์ไหนขึ้นก่อนต้องทำอย่างไรหรอครับ

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
tanusorn
Member
Member
Posts: 10
Joined: Thu Jun 20, 2019 5:37 pm

ผมใช้โค้ดของพี่รัน แต่ถ้าผมต้องการเลือกว่าต้องการให้ไฟล์ไหนขึ้นก่อนต้องทำอย่างไรหรอครับ

#1

Post by tanusorn »

Dim strPath As Variant, i As Integer
Dim fName As String, nb As Workbook
Dim tb As Workbook

Set tb = ThisWorkbook
strPath = Application.GetOpenFilename("Excel files(.xlsx),*.xlsx*", _
Title:="Please select text files.", MultiSelect:=True)
If TypeName(strPath) = "Boolean" Then Exit Sub

For i = 1 To UBound(strPath)
Set nb = Workbooks.Open(strPath(i))
With nb.Worksheets(1)
.Range("a1").Offset(0, .UsedRange.Columns.Count) _
.Resize(.UsedRange.Rows.Count - 1, 1).Value = .Name
.UsedRange.Offset(0, 0).Copy
End With
With tb.Sheets(1)
.Range("a" & .Rows.Count).End(xlUp).Offset(0, 0).PasteSpecial xlPasteValues
End With
Cells.EntireColumn.AutoFit
Columns("A:AS").EntireColumn.AutoFit
Application.CutCopyMode = False
nb.Close False
Next i
User avatar
snasui
Site Admin
Site Admin
Posts: 30920
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ผมใช้โค้ดของพี่รัน แต่ถ้าผมต้องการเลือกว่าต้องการให้ไฟล์ไหนขึ้นก่อนต้องทำอย่างไรหรอครับ

#2

Post by snasui »

:D กรุณา Post Code ให้แสดงเป็น Code ดูตัวอย่างได้จากกฎการใช้บอร์ดข้อ 5 ด้านบนครับ :roll:

นอกจากนี้กรุณาแนบไฟล์ตัวอย่างที่ได้ปรับ Code ให้เป็นไปตามต้องการมาแล้วด้วยจะได้ช่วยตอบต่อไปจากนั้นครับ
tanusorn
Member
Member
Posts: 10
Joined: Thu Jun 20, 2019 5:37 pm

Re: ผมใช้โค้ดของพี่รัน แต่ถ้าผมต้องการเลือกว่าต้องการให้ไฟล์ไหนขึ้นก่อนต้องทำอย่างไรหรอครับ

#3

Post by tanusorn »

Code: Select all

Private Sub CommandButton1_Click()

    Dim strPath As Variant, i As Integer
    Dim fName As String, nb As Workbook
    Dim tb As Workbook
    
    Set tb = ThisWorkbook
    strPath = Application.GetOpenFilename("Excel files(*.xlsx*),*.xlsx*", _
        Title:="Please select text files.", MultiSelect:=True)
    If TypeName(strPath) = "Boolean" Then Exit Sub
    
    For i = 1 To UBound(strPath)
        Set nb = Workbooks.Open(strPath(i))
        With nb.Worksheets(1)
            .Range("a1").Offset(0, .UsedRange.Columns.Count) _
                .Resize(.UsedRange.Rows.Count - 1, 1).Value = .Name
            .UsedRange.Offset(0, 0).Copy
        End With
        With tb.Sheets(1)
            .Range("a" & .Rows.Count).End(xlUp).Offset(0, 0).PasteSpecial xlPasteValues
        End With
        Cells.EntireColumn.AutoFit
    Columns("A:AS").EntireColumn.AutoFit
        Application.CutCopyMode = False
        nb.Close False
    Next i

    'Selection.Cut
    'Sheets.Add After:=ActiveSheet
    'ActiveSheet.Paste
End Sub
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30920
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ผมใช้โค้ดของพี่รัน แต่ถ้าผมต้องการเลือกว่าต้องการให้ไฟล์ไหนขึ้นก่อนต้องทำอย่างไรหรอครับ

#4

Post by snasui »

:D Code ที่เขียนมาไม่มีระบุว่าต้องการให้ไฟล์ใดขึ้นก่อนขึ้นหลัง

ไม่ทราบว่ามีการกำหนดไว้ตรงไหน อย่างไร ว่าไฟล์ไหนขึ้นก่อนหรือหลัง ได้เขียน Code เช่นนั้นไว้แล้วหรือไม่ ถ้ายังไม่ได้เขียนให้เขียนมาเองก่อน ได้เท่าไรก็เท่านั้นแต่ขอให้ลองเขียนมาเองก่อนครับ
tanusorn
Member
Member
Posts: 10
Joined: Thu Jun 20, 2019 5:37 pm

Re: ผมใช้โค้ดของพี่รัน แต่ถ้าผมต้องการเลือกว่าต้องการให้ไฟล์ไหนขึ้นก่อนต้องทำอย่างไรหรอครับ

#5

Post by tanusorn »

มันกำหนดอย่างไรหรอครับ แบบเลือกไฟล์ใดก่อนให้ขึ้นอันนั้นก่อน พอดีผมไม่ค่อยมีความรู้เท่าไรครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30920
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ผมใช้โค้ดของพี่รัน แต่ถ้าผมต้องการเลือกว่าต้องการให้ไฟล์ไหนขึ้นก่อนต้องทำอย่างไรหรอครับ

#6

Post by snasui »

:D คุณ tanusorn ต้องทราบก่อนครับว่าต้องการเงื่อนไขการทำงานเป็นอย่างไร อธิบายสิ่งนั้นมาให้ทราบกันก่อน จะได้ช่วยคิดวิธีการทำงานแต่ต้องไปเขียน Code มาเองก่อน จะได้ช่วยแก้ไขปรับปรุงให้ได้ครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30920
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ผมใช้โค้ดของพี่รัน แต่ถ้าผมต้องการเลือกว่าต้องการให้ไฟล์ไหนขึ้นก่อนต้องทำอย่างไรหรอครับ

#7

Post by snasui »

tanusorn wrote: Thu Jun 20, 2019 6:50 pm แบบเลือกไฟล์ใดก่อนให้ขึ้นอันนั้นก่อน
:D ปัจจุบันเมื่อเลือกให้ไฟล์ไหนขึ้นก่อนแล้วมันแสดงผลอย่างไรครับ :?:
tanusorn
Member
Member
Posts: 10
Joined: Thu Jun 20, 2019 5:37 pm

Re: ผมใช้โค้ดของพี่รัน แต่ถ้าผมต้องการเลือกว่าต้องการให้ไฟล์ไหนขึ้นก่อนต้องทำอย่างไรหรอครับ

#8

Post by tanusorn »

ตอนผมรันไม่เป็นแบบนี้อ่าครับ เลยคิดว่าผมต้องผิดตรงไหนแน่เลย
User avatar
snasui
Site Admin
Site Admin
Posts: 30920
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ผมใช้โค้ดของพี่รัน แต่ถ้าผมต้องการเลือกว่าต้องการให้ไฟล์ไหนขึ้นก่อนต้องทำอย่างไรหรอครับ

#9

Post by snasui »

:D ช่วยยกตัวอย่างวิธีการเลือกตำแหน่งไฟล์และวิธีการจัดเรียงของไฟล์ที่ได้จากการรันโปรแกรมมาด้วยครับ

เช่น เลือกไฟล์ 1, 3, 2 แต่โปรแกรมยังเรียงเป็น 1, 2, 3 เช่นนี้หรือไม่ หรือเรียงอย่างไรครับ

สำหรับคำว่า "อ่ะครับ" หรือ "อ่าครับ" ให้ใช้คำว่า "ครับ" แทนเพื่อให้เป็นไปตามกฎการใช้บอร์ดข้อ 1 ด้านบนครับ :roll:
tanusorn
Member
Member
Posts: 10
Joined: Thu Jun 20, 2019 5:37 pm

Re: ผมใช้โค้ดของพี่รัน แต่ถ้าผมต้องการเลือกว่าต้องการให้ไฟล์ไหนขึ้นก่อนต้องทำอย่างไรหรอครับ

#10

Post by tanusorn »

สมมุติว่าผมมีไฟล์ ข้อมูล 1,2 แล้วอัน 3 ที่เป็นไฟล์ที่มีโค้ดอยู่ ผมต้องการดึงข้อมูลมารวมไว้ที่ไฟล์ 3 โดยตอนเลือกดึงเป็นลำดับ คือ1,2 แต่ผลที่ออกมาคือมันออกเป็น 2,1ครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30920
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ผมใช้โค้ดของพี่รัน แต่ถ้าผมต้องการเลือกว่าต้องการให้ไฟล์ไหนขึ้นก่อนต้องทำอย่างไรหรอครับ

#11

Post by snasui »

:D โปรแกรมจะดึงไฟล์มาให้โดยเรียงจากบนลงล่างครับ

หากจะแก้ให้ทำงานได้ง่ายควรเปลี่ยนชื่อไฟล์ให้มีตัวเลขกำกับ กำหนดการเรียงไว้ใน Folder ตามต้องการ

ไม่เช่นนั้นก็เลือกวิธีการคีย์ชื่อไฟล์ และ Path ของไฟล์ไว้ในไฟล์โปรแกรมแล้วค่อย Loop ดึงมาตามลำดับที่กำหนดครับ
Post Reply