Существует две проблемы с кодом MsgBox, как было опубликовано:
If Cell.Value = "" Then Cell.Interior.Color = vbRed
MsgBox "Project Number must be provided for all lines where
reimbursement is being requested" & vbCritical
Cancel = True
(оставьте две окружающие строки кода для контекста)
Во-первых, vbCritical
являетсяфлаг и отдельный параметр для MsgBox
вызова . Однако, это, вероятно, добавит необычное число в конец строки.
Вторая проблема состоит в том, что ваши текстовые строки обернуты вокруг и представлены в отдельных строках. Это может привести к ошибке компиляции.
Попробуйте сделать следующее:
If Cell.Value = "" Then Cell.Interior.Color = vbRed
MsgBox "Project Number must be provided for all lines where reimbursement is being requested", vbCritical
Cancel = True
Обратите внимание, что правильный отступ поможет вам идентифицировать блоки кода и обеспечить правильное соответствие ваших операторов If
. Кроме того, не уверен, что Cancel
делает в этом цикле, но узнайте о области видимости и о том, как правильно передавать переменные (как параметры или возвращать их через функции).
Наконец, всегда используйте Option Explicit
вверхняя часть модуля. Хотя это гарантирует строгую типизацию и возвращает ошибки, когда у вас есть необъявленные переменные (очень полезно для сбора опечаток), в этом случае это также гарантирует, что VBA IDE предоставляет некоторую дополнительную информацию при отладке.