VBA Макросы: Переменная остаётся постоянной, не участвует синхронно в цикле.

Автор Посетитель, 15 января 2018, 16:43

Посетитель

Есть такой макрос:
Макрос
Sub www() 'Проверка существования файла с таким именем в папки \ИД\Акты Р
r = Cells(Rows.Count, 2).End(xlUp).row
If WorksheetFunction.CountA(Range("Выбор")) <> 0 Then
If r >= 4 Then
Каталог_в_Котором_Ищем = Split(ThisWorkbook.Path, "\")(0) & "\ИД\Акты Р"
For Each X In Range("Выбор") 'цикл по непустым (отмеченным) во втором столбе
F_name = X.Offset(, 3).Value & ".docx"
Если такой  F_name есть в папке "\ИД\Акты Р",то удаляем метку со столбца выбор и продолжаем поиск
If Dir(Каталог_в_Котором_Ищем & "\" & "F_name") <> "" Then X.Offset = ""
Next X
End If
End If
End Sub
[свернуть]

F_name = X.Offset(, 2).Value & ".docx"
остается постоянной, поэтому и не сравнивается.
Нужно заставить F_name чтобы синхронно участвовал в цикле с Range("Выбор").
Например если в столбце "Выбор"выбирается 5 строка, то и в столбце 5 тоже должно выбираться 5 строка.
Вот с этим помогите, пожалуйста.

Макрос делает эту задачу.
Есть папка (ИД\Акты Р). В ней собираются файлы с именем из столбца 5.
Как проверить, что файл уже есть в папке, чтобы не дублировать?

Спасибо.

[вложение удалено администратором]

Администратор

Переменная у вас заключена в кавычки. Всё, что попадает в кавычки, становится просто текстом. То есть ваша переменная "FileName" стала не переменной, а текстом "FileName".
Пока я изучал задание, внёс ещё некоторые изменения, но функционал остался весь тот, который был.

Макрос
Sub www() 'Проверка существования файла с таким именем в папки \ИД\Акты Р
    Dim Каталог_в_Котором_Ищем As String, FileName As String
    Dim cell As Range, lr As Long
    lr = Cells(Rows.Count, 2).End(xlUp).Row
    If lr < 4 Then Exit Sub
    Каталог_в_Котором_Ищем = Split(ThisWorkbook.Path, "\")(0) & "\ИД\Акты Р"
    For Each cell In Range("Выбор") 'цикл по непустым (отмеченным) во втором столбе
        FileName = cell.Offset(, 3).Value & ".docx"
        ' Если такой FileName есть в папке "\ИД\Акты Р", то удаляем метку со столбца выбор и продолжаем поиск.
        If Dir(Каталог_в_Котором_Ищем & "\" & FileName) <> "" Then
            cell.Value = ""
        End If
    Next cell
End Sub
[свернуть]

Посетитель

Результатом удовлетворен, все работает.
Благодарю участников форума за помощь!