Не знаю, в этом ли проблема, но я пришел к выводу, что пришел.
Когда в макросах диапазона обнаружена пустая ячейка, выход из цикла FOR, но это может быть другойпроблема.
В любом случае мне хотелось бы узнать причину и узнать, как ее решить, поскольку у меня нет опыта работы с vba.
С помощью этого кода можно найти файл в каталоге(имя маршрута по переменной strLocation, которое также содержит имя файла из столбца D), если столбец E (столбец электронной почты, используемый в качестве диапазона) заполнен, то не возникает проблем, но при наличии пустой ячейки происходят странные вещи.Показать сообщение об ошибке и пропустить следующую ячейку для выхода For.
Например, в листе Excel:
FILE_NAME (ячейка D) | Электронная почта (ячейка E)
filename_1 |example@hotmail.com
| example@hotmail.com
filename_3 |
filename_4 |example@gmail.com
filename_5 |example@gmail.com
Когда показывать сообщение, в котором не указано имя файла в строке 2, после перехода в конец кода, выходящего из Для каждого, не делать следующую ячейку в строке 3. (Считая из строки 1 после заголовка, RangeE2 ...)
'Comprobador PDF
Private Sub comprobar_pdf_Click()
Dim Secfolder As String
Dim Rango As Range, i As Long, cell As Range
With Worksheets("Formacion-Acreditaciones")
Set Rango = .Range("E2", .Range("E2").End(xlDown)).SpecialCells(xlCellTypeVisible)
End With
Application.ScreenUpdating = False
Dim strLocation As String
For Each cell In Rango
i = cell.Row
strLocation = f_ruta.Value & "\" & Worksheets("Formacion-Acreditaciones").Cells(cell.Row, "D").Value & ".pdf"
If Dir(strLocation) <> "" Then
Else
MsgBox "Not Found, No se encuentra el archivo PDF adjunto correspondiente a: " & vbCrLf & cell.Offset(0, -1).Value & vbCrLf & cell.Offset(0, -3).Value & ", " & cell.Offset(0, -4).Value & vbCrLf & vbCrLf & "Anótelo ahora y envíelo más tarde de forma manual con su gestor de correo.", vbExclamation, "Error Archivo adjunto"
GoTo next_comprobacion
End If
next_comprobacion:
Next cell
Application.ScreenUpdating = True
MsgBox "Finished, Comprobación de existencia de archivos PDF finalizada.", vbInformation, "Comprobación Archivo adjunto"
End Sub
Я ожидаю, что когда ячейка в диапазоне (столбец E), независимо от того, содержит ли она данные или нет, и считается равным как строка.Поскольку я хочу сравнить имя столбца D с именем файла в каталоге, чтобы позже отправить его в виде вложения по электронной почте.
Вот мой полный код: https://github.com/arv187/vba/issues/5#issue-411066359 Заранее спасибо.