簡體   English   中英

VBA-在文件夾中打開文件並打印名稱

[英]VBA - Open files in folder and print names

我想打開某個文件夾中的所有文件,並打印出這些文件的名稱。

我已經設置了一個打開文件的代碼,但是我無法獲取它來打印名稱。 我有一個單獨的代碼,它將打印名稱,但只會打開一個文件。 我無法將兩者正確地結合在一起。 有任何想法嗎?

打開所有Excel文件的代碼:

‘set path to progress folder
Sub OpenFiles()
Dim MyFolder As String
Dim MyFile As String
MyFolder = “C:\Users\trembos\Documents\TDS\progress"
MyFile = Dir(MyFolder & "\*.xlsx")
Do While MyFile <> ""
Workbooks.Open fileName:=MyFolder & "\" & MyFile
    MyFile = Dir
Loop
End Sub

打印一個文件名的代碼:

'set path to TDS_Working
Sub TDS()
    Workbooks.Open ("C:\Users\trembos\Documents\TDS\progress")
End Sub

'set up dim
Sub LoopThroughDirectory()
Dim objFSO As Object
Dim objFolder As Object
Dim objFile As Object

Dim i As Integer

'create an instance of the FileSystemObject
Set objFSO = CreateObject("Scripting.FileSystemObject")
'get the folder object
Set objFolder = objFSO.GetFolder("C:\Users\trembos\Documents\TDS\progress\")
i = 1
'loop through directory file and print names
For Each objFile In objFolder.Files
    'print file name
    Cells(i + 1, 1) = objFile.Name
Next objFile
End Sub

這應該工作順利:

   Sub LoopThroughDirectory()

    Dim objFSO As Object
    Dim objFolder As Object
    Dim objFile As Object
    Dim MyFolder As String
    Dim Sht As Worksheet
    Dim i As Integer

    MyFolder = "C:\Users\trembos\Documents\TDS\progress\"

Set Sht = ActiveSheet

    'create an instance of the FileSystemObject
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    'get the folder object
    Set objFolder = objFSO.GetFolder(MyFolder)
    i = 1
    'loop through directory file and print names
    For Each objFile In objFolder.Files

        If LCase(Right(objFile.Name, 3)) <> "xls" And LCase(Left(Right(objFile.Name, 4), 3)) <> "xls" Then
        Else
            'print file name
            Sht.Cells(i + 1, 1) = objFile.Name
            i = i + 1
            Workbooks.Open Filename:=MyFolder & objFile.Name
        End If
    Next objFile

    End Sub
‘set path to progress folder
Sub OpenFiles()
Dim MyFolder As String
Dim MyFile As String
ActiveSheet.Unprotect ("password")
MyFolder = “C:\Users\trembos\Documents\TDS\progress"
MyFile = Dir(MyFolder & "\*.xlsx")
i=1
Do While MyFile <> ""
Workbooks.Open fileName:=MyFolder & "\" & MyFile
    MyFile = Dir
    Cells(i + 1, 1) =Myfile
    i=i+1
Loop
ActiveSheet.Protect ("password")
End Sub

這行不通嗎?

您只需要在循環內迭代i: i=i+1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM