Проблема с ссылками в Excel в коде C # - PullRequest
2 голосов
/ 15 сентября 2011

У меня есть электронная таблица, в которой используется функция WORKDAY () в Excel (я думаю, она находится в библиотеке / пакете Analysis Toolpak / как бы вы ее ни называли в Excel). Когда я открываю эту таблицу вручную и вызываю эту функцию, она ведет себя нормально.

У меня есть макрос, который ссылается на ячейку, в которой используется функция WORKDAY ():

Dim startDate as Date
startDate = Cells(1,1)

Когда я запускаю макрос после открытия таблицы вручную, этот код выполняется нормально. Проблема в том, что я пытаюсь открыть электронную таблицу и запустить макрос из моего кода C #. Затем он потерпит неудачу, когда попытается получить значение для startDate. Когда я смотрю на эту камеру, я вижу # ЗНАЧЕНИЕ! ошибка ссылки. Кажется, что он не загружает правильные ссылки, когда я открываю электронную таблицу из моего кода C #.

Кто-нибудь знает, как решить эту проблему?

1 Ответ

3 голосов
/ 15 сентября 2011

Что мне нужно было сделать, это принудительно загрузить надстройку .xla, используя:

app.Workbooks.Open(file_name)

, где app - это экземпляр Microsoft.Office.Interop.Excel.Application, если он уже открыт, то ничего не происходит,в противном случае он загружает надстройку для анализа.Чтобы найти путь для надстройки, это зависит от версии Office

  • Office 11: C: \ Program Files \ Microsoft Office \ OFFICE11 \ Library \ Analysis \ ANALYS32.XLL
  • Office 12: C: \ Program Files (x86) \ Microsoft Office \ Office12 \ Library \ Analysis \ ANALYS32.XLL
...