Ошибка 70 в Excel VBA

Я пытаюсь напрямую загрузить изображение/диаграмму из Excel в URL-адрес группы Sharepoint. Вот сценарий:


Подпрограмма ЭкспортДиаграммыJPG()

ActiveChart.Export Filename:="http://sharepoint.ap.xxxxxxxxxxxxxx.com/xxxxxx/xxxxxxxxxxxxxx/Pictures/MyChart.jpg", _FilterName:="jpeg"

Конец сабвуфера


Это возможно? Если это не так, можете ли вы предложить другой способ сделать это? Спасибо


person Community    schedule 21.07.2009    source источник


Ответы (1)


Вы можете экспортировать только в файл, но не в URL. Таким образом, вы можете экспортировать во временный файл на диске, а затем отправить файл на свой веб-сервер. Вам, конечно, понадобится веб-сервер, чтобы иметь возможность получать файлы.

Подождите, судя по URL, это сервер SharePoint, да? Предположительно библиотека документов SharePoint? В этом случае вам нужно написать некоторый код, чтобы использовать один из следующих методов для загрузки файла:

Если вы хотите сделать это в VBA, вам может пригодиться библиотека MSXML3, поскольку она позволит вам выполнять HTTP-запросы.


РЕДАКТИРОВАНИЕ: Хорошо, основываясь на ваших комментариях, вот простой сценарий VBScript, который поможет вам начать работу. Это открывает книгу Excel в известном месте и экспортирует первый лист диаграммы.

Сохраните это как «test.vbs», а затем дважды щелкните его, чтобы запустить (создав подходящий файл Excel и т. д.).

Dim oExcel : Set oExcel = CreateObject("Excel.Application")

Dim oWorkbook : Set oWorkbook = oExcel.Workbooks.Open("C:\test.xls")

Dim oChart : Set oChart = oWorkbook.Charts(1)

oChart.Export "C:\chart.jpg", "JPEG"

oWorkbook.Close False

oExcel.Quit

Как я сказал в своем комментарии, VBScript очень похож на VBA, но недостатком является то, что здесь нет строгой типизации, поэтому вы не получаете Intellisense и т. д. Возможно, проще создать скрипт в VBA, где вы делаете иметь Intellisense (а также отладчик и т. д.), а затем «перенести» его на VBScript.

person Gary McGill    schedule 21.07.2009
comment
Спасибо за ответ, попробую разобраться как это сделать. В любом случае, в качестве дополнительного вопроса, могу ли я сделать это автоматически? Я имею в виду, могу ли я автоматизировать экспорт изображения из файла Excel, а затем загрузить его в библиотеку SharePoint? Сценарий таков: мне нужно создать сценарий, который можно запустить в cmd, после чего процедура будет выполнена. Цель – полное отсутствие вмешательства человека. Как бы я это сделал? (Я новичок, поэтому извините, если буду продолжать спрашивать. Надеюсь, вы меня выдержите. Еще раз спасибо) - person ; 22.07.2009
comment
@perfs: Да, это можно сделать, но это не тривиально. Вы можете использовать VBScript (который очень похож на VBA), чтобы запустить Excel, открыть книгу, экспортировать диаграмму, а затем выполнить загрузку в SharePoint. И это может быть запущено запланированной задачей или чем-то подобным. Я предлагаю вам делать это по одному шагу за раз (возможно, начать только с части «Экспорт» и пока забыть о SharePoint) — и быть готовым к тому, что шагов будет много. - person Gary McGill; 22.07.2009
comment
Вы также можете использовать «гибридный» подход VBScript/VBA. Создайте в книге макрос VBA, который выполняет экспорт и загрузку. Создайте сценарий VBScript для запуска Excel и вызова макроса. - person codeape; 22.07.2009