Это также может произойти, если у вас нет прав доступа к файлу, а не только когда он открыт исключительно. В любом случае, я всегда находил лучший обходной путь для этой проблемы - автоматизировать копирование файла в новый временный файл. Копии выполняются практически мгновенно, даже для больших файлов, поэтому они не должны сильно замедлять работу, а поскольку ваше приложение предназначено только для чтения, вам не нужно беспокоиться об удалении временного файла впоследствии.
Кроме того, это устранит любые проблемы с разрешениями, которые можно устранить. Если у вас есть права на чтение, копия будет работать, если нет, то в любом случае обходного пути нет. У вас будут полные права доступа для скопированного файла, если вы сделаете путь назначения временной копии тем же путем, что и рабочая книга. (Application.Path
)
Для этого используйте команду FileCopy srcFile, destName
.