2014-09-17 3 views
0

Я не уверен, есть ли для этого ответ, хотя это выглядит как ДЕЙСТВИТЕЛЬНО простой вопрос.Не допускайте ошибки при попытке открыть файл с помощью vba

Я использую код vba, чтобы открыть файл в Sharepoint, однако, поскольку я не могу использовать Len (Dir()), чтобы проверить, действительно ли файл существует, я использовал код, который я нашел на форуме, но этот код не работает так, как я думал.

Мне нужен был код для поиска нескольких файлов в Sharepoint, и каждый файл должен иметь текущую дату (например: если мы в июле 2014 года, файл должен иметь имя Name_July2014, а не Name_June2014 или May_2014). Так как файл с текущей датой может не существовать, в него будет введено сообщение «Не обновлено» в определенной ячейке в рабочей книге, которую я использую, и макрос будет продолжать работать. Код работает хорошо, но он останавливается каждый раз, чтобы показать сообщение о том, что файл не существует. Это сообщение появляется каждый раз, когда макрос пытается открыть файл, который не существует. Мне нужно было пропустить это предупреждение и запустить код. Я думал, что этот код пропустит предупреждение (используя On Error GoTo), и это будет способ показать, что файл существует, но он не работает. Может ли кто-нибудь взглянуть?

Могу ли я как-то избежать сообщения «Интернет-адрес ... недействителен»?

Действительно извините, если я не был достаточно ясен из-за моего английского языка и сожалею, если на этот вопрос уже был дан ответ в другом сообщении.

Это то, что код выглядит следующим образом:

'Open the file and checks if the name of the file opened is different from the  
'previous file opened 
On Error Resume Next 
Application.Workbooks.Open (fileName) 
newBook = ActiveWorkbook.Name 
If originalBook = newBook Then 
    [the file does not exist, do something] 
Else 
    [the file exists, do something else] 
End If 
On Error Goto 

ответ

2

On Error Resume Next делает это так, если Excel обнаруживает ошибку, она игнорирует его и переходит к следующей строке кода. On Error GoTo 0 снова обращается с нормальной обработкой ошибок. On Error GoTo является неправильным синтаксисом и не запускается, возможно, именно там, где находится ваша ошибка. Смотрите здесь для дальнейшего объяснения:

Why would you ever use "On Error Goto 0"?

+0

У меня две проблемы, первое сообщение о том, что интернет-адрес файла не является допустимым (и я не хочу, чтобы сообщение всплывал) и второй, если я ставлю на Ошибка Перейти к xxxx Я получил ошибку времени выполнения 1004 Microsoft Excel не может получить доступ к файлу) – dekio

+0

@trder, если вы не хотите, чтобы какие-либо ошибки всплывали, в верхней части сценария есть 'On Error Resume Next' и удалите 'On Error GoTo 0' в вашем коде. Из того, что вы опубликовали, я не могу сказать, почему вы получаете эти ошибки. – DyRuss

+0

Теперь я понял ... извините! Но могу ли я избежать сообщения «Интернет-адрес xxxxx недействителен» ???? – dekio

Смежные вопросы