EXCEL TOOLS
Excel Add-ins ที่พัฒนาโดยคุณสันติพงศ์ ณสุย (MVP Excel 2010-2020) ด้วยภาษา C# เพื่อแก้ไขปัญหาไฟล์ใหญ่ คำนวณนาน ทำงานช้า จัดการข้อมูลต่าง ๆ ที่ทำงานประจำวันได้อย่างสะดวกรวดเร็ว สนใจคลิกไปดูได้ที่นี่ครับ => Excel Tools
Excel Add-ins ที่พัฒนาโดยคุณสันติพงศ์ ณสุย (MVP Excel 2010-2020) ด้วยภาษา C# เพื่อแก้ไขปัญหาไฟล์ใหญ่ คำนวณนาน ทำงานช้า จัดการข้อมูลต่าง ๆ ที่ทำงานประจำวันได้อย่างสะดวกรวดเร็ว สนใจคลิกไปดูได้ที่นี่ครับ => Excel Tools
[code]
และปิดด้วย [/code]
ตัวอย่างเช่น [code]dim r as range[/code]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)Code: Select all
Dim oFSO As Object
Dim oFolder As Object
Dim oFile As Object, sf
Dim i As Integer, colFolders As New Collection, ws As Worksheet
Set ws = Sheets("Path")
ws.Range("a1 : a5000").ClearContents
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder("C:\Users\Lenovo\Desktop\PATH")
colFolders.Add oFolder
Do While colFolders.Count > 0
Set oFolder = colFolders(1)
colFolders.Remove 1
For Each oFile In oFolder.files
If Right(oFile, 7) = ".SLDDRW" Then
ws.Cells(i + 1, 1) = oFolder.Path
ws.Cells(i + 1, 2) = oFile.Name
i = i + 1
End If
Next oFile
For Each sf In oFolder.SubFolders
colFolders.Add sf
Next sf
Loop
Code: Select all
'Other code
For Each oFile In oFolder.files
' If Right(oFile, 7) = ".SLDDRW" Then
If InStr(oFile, "REPLACEMENT") Then
ws.Cells(i + 1, 1) = oFolder.Path
ws.Cells(i + 1, 2) = oFile.Name
i = i + 1
End If
Next oFile
'Other code
Code: Select all
'Other code
For Each oFile In oFolder.Files
If InStr(oFile, "REPLACEMENT") Then
If Right(oFile, 7) = ".SLDDRW" Then
ws.Cells(i + 1, 1) = oFolder.Path
ws.Cells(i + 1, 2) = oFile.Name
i = i + 1
End If
End If
Next oFile
'Other code
Jirawat namrach wrote: Tue Feb 18, 2025 1:13 pm สามารถระบุ folder "C:\Users\Lenovo\Desktop\PATH\REPLACEMENT 3000" แล้วค้นหา .SLDDRW เสร็จแล้ว ก็ไป folder ถัดไป "C:\Users\Lenovo\Desktop\PATH\REPLACEMENT 4000" แล้วทำเหมือนกัน แบบนี้สามารถทำได้หรือเปล่าครับ
Code: Select all
Dim i As Long
Sub main()
i = 0
Call getpath2("C:\Users\Lenovo\Desktop\PATH\REPLACEMENT 3000")
Call getpath2("C:\Users\Lenovo\Desktop\PATH\REPLACEMENT 4000")
End Sub
Sub getpath2(f As String)
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Dim oFSO As Object
Dim oFolder As Object
Dim oFile As Object, sf
' Dim i As Integer, colFolders As New Collection, ws As Worksheet
Dim colFolders As New Collection, ws As Worksheet
Set ws = Sheets("Path")
' ws.Range("a1 : a5000").ClearContents
Set oFSO = CreateObject("Scripting.FileSystemObject")
' Set oFolder = oFSO.GetFolder("C:\Users\Lenovo\Desktop\PATH")
Set oFolder = oFSO.GetFolder(f)
colFolders.Add oFolder
Do While colFolders.Count > 0
Set oFolder = colFolders(1)
colFolders.Remove 1
For Each oFile In oFolder.Files
If InStr(oFile, "REPLACEMENT") Then
If Right(oFile, 7) = ".SLDDRW" Then
ws.Cells(i + 1, 1) = oFolder.Path
ws.Cells(i + 1, 2) = oFile.Name
i = i + 1
End If
End If
Next oFile
' For Each sf In oFolder.SubFolders
' colFolders.Add sf
' Next sf
Loop
Application.ScreenUpdating = True
Application.Calculation = xlAutomatic
End Sub