Page 1 of 1
ผมใช้โค้ดของพี่รัน แต่ถ้าผมต้องการเลือกว่าต้องการให้ไฟล์ไหนขึ้นก่อนต้องทำอย่างไรหรอครับ
Posted: Thu Jun 20, 2019 5:41 pm
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
Re: ผมใช้โค้ดของพี่รัน แต่ถ้าผมต้องการเลือกว่าต้องการให้ไฟล์ไหนขึ้นก่อนต้องทำอย่างไรหรอครับ
Posted: Thu Jun 20, 2019 5:46 pm
by snasui
กรุณา Post Code ให้แสดงเป็น Code ดูตัวอย่างได้จากกฎการใช้บอร์ดข้อ 5 ด้านบนครับ
นอกจากนี้กรุณาแนบไฟล์ตัวอย่างที่ได้ปรับ Code ให้เป็นไปตามต้องการมาแล้วด้วยจะได้ช่วยตอบต่อไปจากนั้นครับ
Re: ผมใช้โค้ดของพี่รัน แต่ถ้าผมต้องการเลือกว่าต้องการให้ไฟล์ไหนขึ้นก่อนต้องทำอย่างไรหรอครับ
Posted: Thu Jun 20, 2019 6:09 pm
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
Re: ผมใช้โค้ดของพี่รัน แต่ถ้าผมต้องการเลือกว่าต้องการให้ไฟล์ไหนขึ้นก่อนต้องทำอย่างไรหรอครับ
Posted: Thu Jun 20, 2019 6:19 pm
by snasui
Code ที่เขียนมาไม่มีระบุว่าต้องการให้ไฟล์ใดขึ้นก่อนขึ้นหลัง
ไม่ทราบว่ามีการกำหนดไว้ตรงไหน อย่างไร ว่าไฟล์ไหนขึ้นก่อนหรือหลัง ได้เขียน Code เช่นนั้นไว้แล้วหรือไม่ ถ้ายังไม่ได้เขียนให้เขียนมาเองก่อน ได้เท่าไรก็เท่านั้นแต่ขอให้ลองเขียนมาเองก่อนครับ
Re: ผมใช้โค้ดของพี่รัน แต่ถ้าผมต้องการเลือกว่าต้องการให้ไฟล์ไหนขึ้นก่อนต้องทำอย่างไรหรอครับ
Posted: Thu Jun 20, 2019 6:50 pm
by tanusorn
มันกำหนดอย่างไรหรอครับ แบบเลือกไฟล์ใดก่อนให้ขึ้นอันนั้นก่อน พอดีผมไม่ค่อยมีความรู้เท่าไรครับ
Re: ผมใช้โค้ดของพี่รัน แต่ถ้าผมต้องการเลือกว่าต้องการให้ไฟล์ไหนขึ้นก่อนต้องทำอย่างไรหรอครับ
Posted: Thu Jun 20, 2019 7:28 pm
by snasui
คุณ tanusorn ต้องทราบก่อนครับว่าต้องการเงื่อนไขการทำงานเป็นอย่างไร อธิบายสิ่งนั้นมาให้ทราบกันก่อน จะได้ช่วยคิดวิธีการทำงานแต่ต้องไปเขียน Code มาเองก่อน จะได้ช่วยแก้ไขปรับปรุงให้ได้ครับ
Re: ผมใช้โค้ดของพี่รัน แต่ถ้าผมต้องการเลือกว่าต้องการให้ไฟล์ไหนขึ้นก่อนต้องทำอย่างไรหรอครับ
Posted: Thu Jun 20, 2019 8:10 pm
by snasui
tanusorn wrote: Thu Jun 20, 2019 6:50 pm
แบบเลือกไฟล์ใดก่อนให้ขึ้นอันนั้นก่อน
ปัจจุบันเมื่อเลือกให้ไฟล์ไหนขึ้นก่อนแล้วมันแสดงผลอย่างไรครับ
Re: ผมใช้โค้ดของพี่รัน แต่ถ้าผมต้องการเลือกว่าต้องการให้ไฟล์ไหนขึ้นก่อนต้องทำอย่างไรหรอครับ
Posted: Thu Jun 20, 2019 9:31 pm
by tanusorn
ตอนผมรันไม่เป็นแบบนี้อ่าครับ เลยคิดว่าผมต้องผิดตรงไหนแน่เลย
Re: ผมใช้โค้ดของพี่รัน แต่ถ้าผมต้องการเลือกว่าต้องการให้ไฟล์ไหนขึ้นก่อนต้องทำอย่างไรหรอครับ
Posted: Thu Jun 20, 2019 9:39 pm
by snasui
ช่วยยกตัวอย่างวิธีการเลือกตำแหน่งไฟล์และวิธีการจัดเรียงของไฟล์ที่ได้จากการรันโปรแกรมมาด้วยครับ
เช่น เลือกไฟล์ 1, 3, 2 แต่โปรแกรมยังเรียงเป็น 1, 2, 3 เช่นนี้หรือไม่ หรือเรียงอย่างไรครับ
สำหรับคำว่า "อ่ะครับ" หรือ "อ่าครับ" ให้ใช้คำว่า "ครับ" แทนเพื่อให้เป็นไปตามกฎการใช้บอร์ดข้อ 1 ด้านบนครับ
Re: ผมใช้โค้ดของพี่รัน แต่ถ้าผมต้องการเลือกว่าต้องการให้ไฟล์ไหนขึ้นก่อนต้องทำอย่างไรหรอครับ
Posted: Thu Jun 20, 2019 10:19 pm
by tanusorn
สมมุติว่าผมมีไฟล์ ข้อมูล 1,2 แล้วอัน 3 ที่เป็นไฟล์ที่มีโค้ดอยู่ ผมต้องการดึงข้อมูลมารวมไว้ที่ไฟล์ 3 โดยตอนเลือกดึงเป็นลำดับ คือ1,2 แต่ผลที่ออกมาคือมันออกเป็น 2,1ครับ
Re: ผมใช้โค้ดของพี่รัน แต่ถ้าผมต้องการเลือกว่าต้องการให้ไฟล์ไหนขึ้นก่อนต้องทำอย่างไรหรอครับ
Posted: Thu Jun 20, 2019 10:49 pm
by snasui
โปรแกรมจะดึงไฟล์มาให้โดยเรียงจากบนลงล่างครับ
หากจะแก้ให้ทำงานได้ง่ายควรเปลี่ยนชื่อไฟล์ให้มีตัวเลขกำกับ กำหนดการเรียงไว้ใน Folder ตามต้องการ
ไม่เช่นนั้นก็เลือกวิธีการคีย์ชื่อไฟล์ และ Path ของไฟล์ไว้ในไฟล์โปรแกรมแล้วค่อย Loop ดึงมาตามลำดับที่กำหนดครับ