4129 просмотра
1 ответ
Репутация автора
У меня есть этот кусок кода, но я не могу заставить его работать, потому что он возвращает Bad file name or number error :
Я просто хочу проверить, существует ли данный каталог, если нет, то подскажите сообщение. txtFldr является элементом управления textX ActiveX и ws является рабочим листом . Я на самом деле сохраняю его в общем каталоге или просто локально.
Ответы (1)
1 плюс
6534 Репутация автора
Как насчет этого:
Многие другие способы также показаны путем поиска в интернете. Например, здесь есть другой подход:
Этот второй подход использует некоторые Error функции обработки, доступные в VBA, и GoTo метки для обхода кода.
У меня есть этот код. Предполагается проверить, существует ли файл и открыть его, если это произойдет. Он работает, если файл существует, и если он этого не делает, однако, когда я оставляю текстовое поле пустым и нажимаю кнопку отправки, он терпит неудачу. Я хочу, чтобы текстовое поле было пустым, чтобы отобразить сообщение об ошибке так же, как если бы файл не существовал.
у меня есть электронная таблица, которая при нажатии кнопки будет дублироваться путем копирования/вставки всего в новую книгу и сохранения файла с именем, зависящим от некоторых значений переменных (взятых из ячеек в электронной таблице). Моя текущая цель — заставить его сохранить лист в разных папках в зависимости от имени имени клиента (значение ячейки хранится в переменной), в то время как это работает при первом запуске, я получаю ошибку после.
код проверяет, существует ли каталог и создает его, если нет. Это работает, но после его создания, запуск его во второй раз выдает ошибку:
ошибка выполнения 75-путь / Ошибка доступа к файлу.
вы должны извинить мое отсутствие знаний в этой области, я еще учусь. У меня очень сильное чувство, что это имеет какое-то отношение к логике проверки каталога, как при ошибке MkDir строка выделена.
6 ответов
чтобы проверить наличие каталога с помощью Dir необходимо указать vbDirectory в качестве второго аргумента, как в чем-то вроде:
обратите внимание, что с vbDirectory , Dir вернет непустую строку, если указанный путь уже существует как каталог или в виде файла (при условии, что файл не только для чтения, скрытый или системный атрибутами). Вы могли бы использовать GetAttr чтобы быть уверенным, что это каталог, а не файл.