1 Loop Through Files - Không tìm thấy tệp

câu hỏi được tạo ra tại Wed, May 8, 2019 12:00 AM

Vì vậy, tôi có mã này mà tôi đã tìm thấy ở đây: https://stackoverflow.com/a/10382861

Và khi tôi tìm thấy nó lần đầu tiên, tôi đã sửa đổi nó để thực sự mở các tệp mà nó tìm thấy:

Sub LoopThroughFiles()
    Dim SourceFolder As String
    SourceFolder = "C:\Users\Jeff\Downloads\IO\"

    Dim StrFile As String
    StrFile = Dir(SourceFolder & "*.xls")

    Dim wb As Workbook

    Do While Len(StrFile) > 0
        Debug.Print StrFile
        Set wb = Workbooks.Open(Filename:=StrFile)
        StrFile = Dir
    Loop
End Sub

Khi tôi sửa đổi mã này lần đầu tiên, nó hoạt động hoàn hảo và sẽ mở các tệp của tôi cho tôi.

Vì vậy, tôi đã quyết định thực hiện một chút việc giữ nhà và dọn dẹp mã một chút, xóa các khoảng trống thừa, v.v. Tuy nhiên, bây giờ khi tôi chạy chính xác mã này, nó hiện cho tôi biết:

  

Lỗi thời gian chạy "1004"
  Không thể tìm thấy tệp "Excelfile.xls"

Tôi chưa di chuyển bất kỳ tệp nào, tôi đã không thay đổi bất kỳ đường dẫn nào, tôi đã không đổi tên bất kỳ tệp nào. Mọi thứ đều giống hệt nhau ... nhưng nó không thể tìm thấy các tập tin. Tôi cũng đã kiểm tra mã hóa đường dẫn cứng, với cùng một lỗi.

Một điều tôi nhận thấy rất thú vị, ngay cả khi tôi quay lại mã xương trần:

Sub LoopThroughFiles()
    Dim StrFile As String
    StrFile = Dir("C:\Users\Jeff\Downloads\IO\*.xls")
    Do While Len(StrFile) > 0
        Debug.Print StrFile
        StrFile = Dir
    Loop
End Sub

và chỉ cần thêm Debug.Print Dir, ngay sau Debug.Print StrFile. Có vẻ như StrFile và Dir đang đọc tệp sai tại bất kỳ thời điểm nào.

Bản in đầu tiên là "file1.xls" và bản in thứ hai là "file2.xls"

 nhập mô tả hình ảnh tại đây

Chỉ không chắc chắn nếu điều này có liên quan đến nó.

    
0
  1. Hmmm để mở tệp bạn cần cả đường dẫn & tên tệp, Dir() chỉ cung cấp cho bạn tên tệp để bạn cần thêm đường dẫn.
    2019-05-08 16: 11: 00Z
  2. 2019-05-08 16: 12: 11Z
  3. @ Damian, Đường dẫn được xác định mặc dù ...
    2019-05-08 16: 12: 51Z
  4. Set wb = Workbooks.Open(Filename:=SourceFolder & StrFile)
    2019-05-08 16: 13: 47Z
nguồn đặt đây