val = "path\mybat.bat r"
r
- это просто еще один символ в строковом литерале "path\mybat.bat r"
здесь - откуда VBA должна знать, что вы имели в виду , что r
, чтобы ссылаться на эту локальную r
переменную?
val = "path\mybat.bat " & r 'note the trailing space in the string literal
Используйте его как переменную: вытащите его из строкового литерала, объедините его.
Ошибка 53: «Файл не найден». Забывая конечный пробел, вы вызываете mybat.batAndWhateverRcontains
, который, вероятно, не является существующим именем файла. Следовательно, "файл не найден".
Также обратите внимание на эту распространенную ловушку:
Dim val, r As String
Это объявляет r
как String
и оставляет val
как неявное Variant
.
Dim val As String, r As String
Объявляет обе переменные String
.