1
통합 문서의 열에있는 셀 목록을 검색하기 위해 vba 코드로 작업했는데 해당 셀을 폴더에서 검색해야하고 셀이 통합 문서에서 일치하는 경우 주 통합 문서에 복사해야합니다.루프가 디렉터리간에 작동하지 않음
2 개의 루프로 작업하고 있었지만 하나가 작동하는 경우 예를 들어 폴더의 모든 파일을 반복하면 기본 통합 문서의 열과 루프되어 한 셀을 검색 할 수 없습니다.
Sub SearchFolders()
Dim fso As Object
Dim fld As Object
Dim strSearch As String
Dim strPath As String
Dim strFile As String
Dim wOut As Worksheet
Dim wbk As Workbook
Dim wks As Worksheet
Dim rFound As Range
Dim irow As Integer
Dim rng As Range
Dim strFirstAddress As String
On Error GoTo ErrHandler
Application.ScreenUpdating = False
strPath = "\dfs\Home\Tes"
Set wOut = ThisWorkbook.Worksheets("Data")
With wOut
lRow = 2
Set fso = CreateObject("Scripting.FileSystemObject")
Set fld = fso.GetFolder(strPath)
strFile = Dir(strPath & "\*.xls*")
Do While Cells(lRow, 1) < Empty
strSearch = Cells(lRow, 1)
Set wbk = Workbooks.Open _
(Filename:=strPath & "\" & strFile, _
UpdateLinks:=0, _
ReadOnly:=True, _
AddToMRU:=False)
For Each wks In wbk.Worksheets
Set rFound = wks.UsedRange.Find(strSearch)
If Not rFound Is Nothing Then
strFirstAddress = rFound.Address
End If
Do
If rFound Is Nothing Then
Exit Do
Else
Cells(lRow, 2) = rFound.Offset(0, 1).Value
Cells(lRow, 3) = rFound.Offset(0, 2).Value
End If
Set rFound = wks.Cells.FindNext(After:=rFound)
Loop While strFirstAddress < rFound.Address
Next
wbk.Close (False)
lRow = lRow + 1
Loop
End With
MsgBox "Done"
End Sub
사실이 코드는 폴더의 모든 파일을 반복하지 않습니다. 첫 번째 파일에만 액세스합니다. 폴더의 모든 파일을 하나씩 반복 재생하기를 원합니다. – Striker
일치하는 데이터를 찾기 위해 해당 폴더의 모든 파일을 검색하는 코드가 필요합니다. 나는 그 코드로 작업 할 수 없다. – Striker
fileSytemObject를 사용하여 파일 목록을 반복하려면 https://stackoverflow.com/a/2683516/7599798을 참조하십시오. 또는 VBA'dir' 명령을 사용할 수 있습니다. – FunThomas