В доступе отказано в открытии файла Excel с использованием библиотеки Excel 12.0 и VB6 - PullRequest
3 голосов
/ 08 января 2009

Я уже много раз использовал Excel в своих приложениях VB6 и никогда не сталкивался с такой странной проблемой, пытаясь достичь чего-то очень легкого ..

Я пытаюсь открыть файл excel (xls или xlsx) и прочитать значения, как вы, вероятно, видите.

Когда я пытаюсь открыть файл, я получаю ошибку 70 (разрешение отклонено). Странно то, что нет другого экземпляра Excel Open (в приложениях или процессах диспетчера задач). Никто больше не пытается получить доступ к файлу вообще. Я могу открыть файл в Excel без предупреждения, а также могу открыть / прочитать / закрыть файл в VB6 с базовым синтаксисом «Открыть файл для ввода как № 1» без ошибок. Я могу удалить файл с помощью Kill (), чтобы он не мог быть проблемой с правами доступа к каталогу - Пожалуйста, помогите - я в растерянности !!!

  Dim xlApp As New Excel.Application

  Dim xlWBook As Excel.Workbook

  'Error Occurs Here
  Set xlWBook = xlApp.Workbooks.Open(File)

  Dim xlSheet As Excel.Worksheet
  Set xlSheet = xlWBook.Sheets.Item(1)

  Dim y As Integer
  For y = 1 To 99999
    If Len(xlSheet.Cells(y, 1)) > 0 Then
      Send xlSheet.Cells(y, 1) & " - " & xlSheet.Cells(y, 2) & "<br>"
    End If
  Next

  Set xlWBook = Nothing
  Set xlApp = Nothing

-Jay

Ответы [ 7 ]

1 голос
/ 03 сентября 2009

Вы проверили свою конфигурацию DCOM.

Подобная проблема возникла сегодня, когда веб-служба, которая пыталась создать Excel.Application, получила отказ в доступе.

В моем случае мне пришлось добавить гостевую учетную запись в Интернете, чтобы иметь права доступа к компоненту.

Перейти к конфигурации DCOM можно из Пуск -> Выполнить

Тип DCOMCNFG - нажмите ввод

Затем перейдите в раздел Службы компонентов / Компьютеры / Мой компьютер / Конфигурация DCOM / Приложение Microsoft Excel

Правый клик, свойства ...

Настройки находятся на вкладке Безопасность.

1 голос
/ 30 января 2012
Dim xlApp As New Excel.Application    
Dim xlWBook As Excel.Workbook    
'Error Occurs Here   
Set xlWBook = xlApp.Workbooks.Open(File) 

Не определено, какой файл. то есть.

File="C:\myDocuments\myexcel.xlsx". 'Because File string is empty.
1 голос
/ 08 января 2009

Можете ли вы открыть недавно созданный пустой документ электронной таблицы?

Если это не сработает, возможно, ваша установка Excel нуждается в повторной регистрации. Откройте командную строку и перейдите в папку, где установлен Excel, обычно что-то вроде

cd "C:\Program Files\Microsoft Office\Office12"

и затем запустите Excel с параметром / regserver

excel.exe /regserver

Если это не поможет, перейдите в Панель управления -> Установка и удаление программ и начните восстановление Microsoft Office.

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

Если проблема не устранена, вы можете проверить наличие доступных обновлений Office.

Не знаю, связано ли все это с вашей проблемой, это довольно стандартные методы устранения неполадок приложений Office ...

ОБНОВЛЕНИЕ: возможно, устранение неполадок с Procmon покажет, в чем проблема (см. http://support.microsoft.com/kb/286198).

0 голосов
/ 09 сентября 2009

Вы, похоже, создаете новый экземпляр Excel, не закрывая его явно (т.е. xlApp.Close перед тем, как установить для него значение Nothing). Это может быть причиной ваших проблем.

Иногда дела идут наперекосяк, если при вызове их из VBA появляются свободные экземпляры Office Apps. Если в диспетчере задач запущен файл Excel.exe, но приложение не отображается на экране или панели задач, убейте их и повторите попытку.

0 голосов
/ 04 августа 2009

Это может произойти, когда есть проблема в файле Excel, проблема согласованности. Файл поврежден.

Например, на листе есть 2 объекта с одинаковыми именами. Дело в том, что я не могу сказать, как возможно, что ваш файл был сохранен с такой «проблемой», но когда Excel пытается открыть его, он выдает такую ​​ошибку.

0 голосов
/ 13 января 2009

Просто подумал, заглянули ли вы в журнал событий Windows, чтобы узнать, можно ли там найти больше информации?

0 голосов
/ 08 января 2009

Может быть, это не файл, в разрешении которого отказано.

...