2017-05-16 5 views
-1

내가 선택한 열에 새 항목을 만들 때마다 새 폴더가 만들어지는 방식으로 Excel에서 폴더를 만들려고합니다.엑셀 : 새 값을 삽입 할 때 자동 업데이트되는 폴더를 만드는 방법은 무엇입니까?

이미 폴더를 만드는 VBA 코드를 검색했습니다. 하지만 셀을 선택하고 매회 매크로를 실행해야합니다. 내가 자동으로 그렇게 할 수있는 방법이 있습니까?

다음은

Sub CreateFolder() 
Dim caminho As String 
Dim folder As Object, FolderName 

For i = 1 To 500 
    Set folder = CreateObject("Scripting.FileSystemObject") FolderName = ActiveWorkbook.Path & "\" & Range("A" & i).Value 
    If Not folder.FolderExists(FolderName) Then 
     folder.CreateFolder (FolderName) 
    End If 
    directory = ThisWorkbook.Path 
Next i 
End Sub 
+4

좀 더 검색을 수행 여기

은 열 D의 모든 신규 또는 변경된 셀의 폴더를 생성합니다 예입니다. "Excel vba 이벤트"및 특히 "Worksheet_Change"로 시작하십시오. – CLR

+0

그냥 같은 페이지에 있으므로 "폴더"를 정의 할 수 있습니까? –

+0

@JohnMuggins Litteraly 일반 폴더. 이 코드가 : 개체로 문자열 희미한 폴더로 하위 CreateFolder를() 희미한 caminho, FolderName은 을 전 = 1 500 설정 폴더 = CreateObject를 ("Scripting.FileSystemObject와") FolderName은 = ActiveWorkbook.Path 하지 folder.FolderExists (여기서 foldername) 다음 folder.CreateFolder (FolderName은) 종료 디렉토리 내가 ThisWorkbook.Path 다음 끝 = 경우 경우 & "\"& 범위 ("A"& I) .Value 하위 – LeoM

답변

0

예, 우리는 당신을 도울 수있는 새로운 폴더 (하위 디렉토리)를 생성하는 코드 사전에 레오

을 주셔서 감사합니다. 그냥 관련 정보가 필요합니다. 열을 선택해야합니까? 또는 하드 코드 된 열을 사용하여 작업 할 수 있습니까? Column D와 같은 컬럼을 선언하십시오 ... 워크 시트 모듈에 Worksheet_Change 매크로를 넣으면 특정 열의 값이 변경 될 때마다 자동으로 해당 폴더가 존재하는지 확인한 후 생성하십시오.

Private Sub Worksheet_Change(ByVal Target As Range) 
Dim caminho As String 
Dim folder As Object, FolderName 

If Target.Column = 1 And Target.Value <> "" Then ' If Changed Cell is in Column A 


' This code changes unacceptable file name characters with an underscore 
    Filename = Target.Value 
    MyArray = Array("<", ">", "|", "/", "*", "\", "?", """") 
    For X = LBound(MyArray) To UBound(MyArray) 
     Filename = Replace(Filename, MyArray(X), "_", 1) 
    Next X 

' This code creates the folder if it doesn't already exist 
    Set folder = CreateObject("Scripting.FileSystemObject") 
    FolderName = ActiveWorkbook.Path & "\" & Filename 
    If Not folder.FolderExists(FolderName) Then 
     folder.CreateFolder (FolderName) 
    End If 



End If 

End Sub 
+0

위의 코드를 다른 사람이 A 열에 입력 할 때마다 반응하도록 위 코드를 변경했습니다. 위 매크로를 일반 모듈이 아닌 워크 시트 모듈에 넣습니다. vba 편집기에서 워크 시트 오브젝트를 두 번 클릭하면 해당 모듈이 열립니다. 해당 모듈에 위의 코드를 붙여 넣습니다. 그런 다음 시트에 들어가서 A 열에 무엇인가를 입력하고 완료되면 enter를 누르십시오. 자동으로 해당 이름의 폴더가 존재하는지 확인하고 그렇지 않은 경우 폴더를 만듭니다. 파일 이름에 몇 가지 잘못된 문자가 있으며 폴더를 만들 때 오류가 발생하지 않도록 밑줄로 대체했습니다. –