2015-08-25 3 views
0

У меня есть макрос vba, который в настоящее время работает таким образом, что имена файлов и измененные даты для каждого файла извлекаются в excel лист. Но проблема в том, что мне нужно перейти к макросу и обновлять путь каждый раз. Я хочу иметь текстовое поле, в котором я могу ввести путь, а затем нажать кнопку мыши по именам файлов, а измененная дата будет извлечена на листе excel. Ниже приведен код, который я использую:Хотите использовать текстовое поле, в котором мы можем ввести путь, а затем нажать кнопку, чтобы щелкнуть данные.

Sub FileT() 
Dim objFSO As Object 
Dim objFolder As Object 
Dim objFile As Object 
Dim i As Integer 
Dim tempString As String 


newString = Left(originalString, 1) 

Set objFSO = CreateObject("Scripting.FileSystemObject") 

Set objFolder = objFSO.GetFolder("C:\Users\rd4470\Documents\Test Folder") 
i = 1 

For Each objFile In objFolder.Files 
tempString = Left(objFile.Name, 1) 
If tempString = "T" Then 

    Cells(i + 1, 3) = objFile.Name 

    Cells(i + 1, 4) = objFile.DateLastModified 

    i = i + 1 
End If 

    Next objFile 

End Sub 

ответ

1

Вы можете использовать значение текстового поля для пути. objFSO.GetFolder(TextBox1.Text)

Sub FileT() 
Dim objFSO As Object 
Dim objFolder As Object 
Dim objFile As Object 
Dim i As Integer 
Dim tempString As String 

    newString = Left(originalString, 1) 

    Set objFSO = CreateObject("Scripting.FileSystemObject") 

    Set objFolder = objFSO.GetFolder(TextBox1.Text) 
    i = 1 

    For Each objFile In objFolder.Files 

     tempString = Left(objFile.Name, 1) 
     If tempString = "T" Then 

      Cells(i + 1, 3) = objFile.Name 

      Cells(i + 1, 4) = objFile.DateLastModified 

      i = i + 1 
     End If 

    Next objFile 

End Sub 
0

Вы можете использовать поле ввода для этой цели

sFldr = Application.InputBox("Enter path",,,,,,,2) 
... 
If Len(Dir(sFldr, vbDirectory)) > 0 Then 
    Set objFolder = objFSO.GetFolder(sFldr) 
    ... 
End If 
Смежные вопросы