본문 바로가기

전체 글1599

파일여부 확인 Sub CheckIfFolderIsEmpty() Dim folderPath As String Dim folder As Object Dim file As Object Dim isEmpty As Boolean ' 확인할 폴더 경로를 지정합니다. folderPath = "C:\Your\Folder\Path" ' FileSystemObject 생성 Set folder = CreateObject("Scripting.FileSystemObject").GetFolder(folderPath) ' 폴더가 비어 있는지 확인 isEmpty = True For Each file In folder.Files isEmpty = False Exit For Next file If isEmpty Then For Each file In.. 2024. 7. 12.
파일갯수 세기 Sub CountXlsxFiles() Dim folderPath As String Dim fileName As String Dim fileCount As Integer ' 폴더 경로를 설정합니다. 예: "C:\example\" folderPath = "C:\example\" ' 파일 갯수를 초기화합니다. fileCount = 0 ' 폴더 내의 첫 번째 파일을 찾습니다. fileName = Dir(folderPath & "*.xlsx") ' 파일이 존재하는 한 반복합니다. Do While fileName "" ' 파일 갯수를 증가시킵니다. fileCount = fileCount + 1 ' 다음 파일을 찾습니다. fileName = Dir Loop ' 결과를 메시지 박스로 출력합니다. MsgBox "폴더 내.. 2024. 7. 12.
폴더열기 Sub OpenFolder() Dim folderPath As String folderPath = "C:\YourFolderPath" ' 여기에 열고자 하는 폴더 경로를 입력하세요. If Dir(folderPath, vbDirectory) "" Then Shell "explorer.exe " & folderPath, vbNormalFocus Else MsgBox "폴더를 찾을 수 없습니다: " & folderPath End If End Sub 2024. 7. 8.
vba 필터해제 후 처리 1. 특정 파일 복사 ```vba Sub CopyFiles() Dim fso As Object Dim sourceFolder As String Dim destFolder As String Dim file As Object Dim fileName As String sourceFolder = "C:/abc/" destFolder = "C:/vba/결과/취합/" Set fso = CreateObject("Scripting.FileSystemObject") If Not fso.FolderExists(destFolder) Then fso.CreateFolder destFolder End If For Each file In fso.GetFolder(sourceFolder).Files If InStr(file.Nam.. 2024. 7. 8.
vba 파일 취합 엑셀 VBA에서 ADO를 사용하여 파일을 직접 열지 않고 작업을 수행하는 것은 복잡할 수 있습니다. 하지만 가능한 한 간단하게 작성해 보겠습니다. 전체 코드는 길어질 수 있으므로, 각 단계를 최대한 간략하게 설명하고 제공하겠습니다. 1. 파일 복사 ```vba Sub CopyFiles() Dim fso As Object Dim srcFolder As String, destFolder As String Dim file As Object, folder As Object srcFolder = "C:\abc\" destFolder = "C:\vba\결과\취합\" Set fso = CreateObject("Scripting.FileSystemObject") Set folder = fso.GetFolder(srcF.. 2024. 7. 8.
취합 Sub ConsolidateData() Dim folderPath As String Dim fileName As String Dim newWB As Workbook Dim ws As Worksheet Dim conn As Object Dim rs As Object Dim lastRow As Long ' 폴더 경로 설정 folderPath = "C:\Your\Folder\Path\" ' 새 워크북 생성 Set newWB = Workbooks.Add Set ws = newWB.Sheets(1) ws.Cells(1, 1).Value = "파일명" ws.Cells(1, 2).Value = "데이터" ' ADO 연결 객체 생성 Set conn = CreateObject("ADODB.Connection") Set .. 2024. 7. 5.
보완 Sub ExtractDataFromFiles() Dim FolderPath As String Dim FileName As String Dim SpecificText As String Dim cn As Object Dim rs As Object Dim ws As Worksheet Dim NewBook As Workbook Dim NewSheet As Worksheet Dim Row As Long Dim Col As Long FolderPath = "C:\Your\Folder\Path\" ' 폴더 경로를 지정하세요. SpecificText = "특정글자" ' 특정 글자를 지정하세요. Set NewBook = Workbooks.Add Set NewSheet = NewBook.Sheets(1) Row = 1 C.. 2024. 7. 5.
추출 Sub ExtractDataFromFiles() Dim FolderPath As String Dim FileName As String Dim SpecificText As String Dim cn As Object Dim rs As Object Dim ws As Worksheet Dim NewBook As Workbook Dim NewSheet As Worksheet Dim Row As Long Dim Col As Long FolderPath = "C:\Your\Folder\Path\" ' 폴더 경로를 지정하세요. SpecificText = "특정글자" ' 특정 글자를 지정하세요. Set NewBook = Workbooks.Add Set NewSheet = NewBook.Sheets(1) Row = 1 C.. 2024. 7. 5.
depth고려 Sub CopyFilesContainingString(sourceFolder As String, targetFolder As String, searchString As String) Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") ' 대상 폴더가 존재하지 않으면 생성 If Not fso.FolderExists(targetFolder) Then fso.CreateFolder(targetFolder) ' 폴더 탐색 및 파일 복사 SearchAndCopyFiles fso.GetFolder(sourceFolder), searchString, targetFolder, fso, 0 MsgBox "파일 복사가 완료되었습니다!" End Su.. 2024. 7. 5.
튜닝코드 하위 폴더명에도 "특정 문자열"이 포함된 것만 탐색하도록 수정하여 탐색 시간을 단축할 수 있습니다. 이를 위해 하위 폴더를 탐색하기 전에 폴더명에 검색 문자열이 포함되어 있는지 확인하는 조건을 추가하면 됩니다. 아래는 해당 기능을 반영한 코드입니다: ```vba Sub CopyFilesContainingString(sourceFolder As String, targetFolder As String, searchString As String) Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") ' 대상 폴더가 존재하지 않으면 생성 If Not fso.FolderExists(targetFolder) Then fso.CreateFold.. 2024. 7. 5.
vba 특정경로파일 탐색 후 복사 Sub CopyFilesContainingString(sourceFolder As String, targetFolder As String, searchString As String) Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") ' 대상 폴더가 존재하지 않으면 생성 If Not fso.FolderExists(targetFolder) Then fso.CreateFolder(targetFolder) ' 폴더 탐색 및 파일 복사 SearchAndCopyFiles fso.GetFolder(sourceFolder), searchString, targetFolder, fso MsgBox "파일 복사가 완료되었습니다!" End Sub S.. 2024. 7. 5.
vb 폴더 파일복사 Sub CopyFolderAndFiles() Dim srcFolder As String Dim destFolder As String Dim fso As Object Dim folder As Object Dim file As Object ' 소스 폴더와 대상 폴더 설정 srcFolder = "C:\abc\" destFolder = "C:\abb\" ' FileSystemObject 생성 Set fso = CreateObject("Scripting.FileSystemObject") ' 대상 폴더 생성 If Not fso.FolderExists(destFolder) Then fso.CreateFolder (destFolder) End If ' 소스 폴더 내 모든 폴더와 파일 복사 Set folder = fso.. 2024. 7. 5.