Мой l oop через код папки в макросе Excel выдает ошибку файла не найден - PullRequest
0 голосов
/ 06 января 2020

Я собираю или добавляю данные один под другим, используя приведенный ниже код для копирования данных вставки в лист из разных Excels с одинаковым форматом, хранящимся в папке

Sub LoopThroughFolder()

Dim MyFile As String, Str As String, MyDir As String, Wb As Workbook
Dim Rws As Long, Rng As Range
Set Wb = ThisWorkbook

MyDir = "Z:\MIS & ANALYTICS\RPA\"
MyFile = Dir(MyDir)
ChDir MyDir
Application.ScreenUpdating = 0
Application.DisplayAlerts = 0

Do While MyFile <> ""
  Workbooks.Open (MyFile)
  With Worksheets("Sheet1")
    Rws = Cells(Rows.Count, "A").End(x1Up).Row
    Set Rng = Range(Cells(2, 1), .Cells(Rws, 27))
    Rng.Copy Wb.Worksheets("Sheets1").Cells(Rows.Count, "A").End(x1Up).Offset(1, 0)
    ActiveWorkbook.Close True
  End With
  MyFile = Dir()
Loop

End Sub   

Здесь MyFile = Dir(MyDir) ищет файл имя как "xyz.xls", тогда как в папке только его "xyz", следовательно, это дает мне сообщение о том, что файл не найден

1 Ответ

2 голосов
/ 06 января 2020

Функция Dir возвращает только имя файла, а не путь, поэтому вы должны добавить его снова при использовании:

Изменить эту строку

Workbooks.Open (MyFile)

на эту

Workbooks.Open MyDir & MyFile

И удалите это:

ChDir MyDir

И вы используете x1Up вместо xlUp (что 1 должно быть L: l), посмотрите разницу ? Эта ошибка находится в нескольких местах в вашем коде, поэтому обязательно исправьте их все.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...