2016-07-21 3 views
0

У меня есть приложение, которое генерирует VFP9 файлы Excel с помощью автоматизации, начиная с:Вызов Excel из VFP9 на 64-битной машине

**oExcel = CREATEOBJECT(“Excel.Application”) 
oWorkbook = oExcel.Workbooks.Add()** 
. . . 

Excel 2013 используется. Затем лист заполняется, форматируется и сохраняется. Это отлично работает на 32-битной машине Windows 7. Однако на 64-разрядной машине Windows 7 некоторые инструкции терпят неудачу. В частности:

**oworkbook.SaveAs(<NewFilename>)** 

завершается с сообщением «Невозможно получить свойство SaveAs класса рабочей книги»

В работе вокруг, я создал перед созданием объекта Excel, а затем называется:

**oworkbook.Save()** 

Это работает. Попросите других пользователей испытать это; существуют ли какие-либо другие ограничения на использование Excel из VFP при работе на 64-битной машине.

Благодаря

ответ

0

Ни oWorkbook.SaveAs(), ни oWorkbook.Save() есть какие-либо проблемы на 64 битной машине (я предполагаю, что вы имели в виду окна (7/8/10) 64). Ваша проблема должна быть чем-то другим.

+0

Спасибо, Четин. Вы указали полезный указатель. Нет проблем с Save(), как я уже упоминал; который всегда работал. Но SaveAs() работает несколько иначе в Excel 2003 и Excel 2013. Если включен второй параметр, xlExcel8 (= 56) - указать вывод .xls, который, похоже, выдает ошибку при использовании Excel 2003; Я буду исследовать дальше. Поэтому я думаю, что проблема связана с версией Excel, а не с версией Windows. В очередной раз благодарим за помощь. –

+0

А это должно объяснить это. Excel 2003 не признает значение xlExcel8 (56) во время 2013 года. Зачем вам когда-либо хотеть сохранять как Excel 8. xlWorkbookNormal в порядке (или без параметров формата). –

0

Я столкнулся с одинаковой проблемой, но проблема оказалась в том, что у пользователя была другая версия Excel, чем у меня. Это был не 64-разрядный, а 32-разрядный. Я решил это, определив:

#define xlNormal 39 

Это установило целевую версию книги. Вот страница про перечисление: https://msdn.microsoft.com/en-us/library/office/ff198017.aspx

Я также обнаружил, что в приложениях, где я сохраняю до 50, которые мне нужно открыть, установите флаг сохранения, выполните мою работу, затем скажите SaveAs.

Удачи вам в этом :) Пожалуйста, рассмотрите вопрос о закрытии этого вопроса. Я думаю, для вас это получается как два момента.

+0

Спасибо Missy. Я рад закрыть вопрос. Как я могу это сделать? - Или ты можешь сделать это для меня. –

+0

См. 0? Под ним находится стрелка вниз. Под этим есть галочка, которую вы можете видеть, если вы наведите указатель мыши. Нажмите на галочку. Также нажмите стрелку вверх сверху 0s для всех ответов, чтобы поблагодарить всех, кто вам помог. – Missy

+0

Спасибо, Мисси. Сделаю это. У меня нет полного отзыва, но, похоже, я помню, что член, которого зовут Цетин, ответил довольно быстро. Я чувствую, что должен поблагодарить его за его ответ. Могу ли я это сделать/ –