powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / VBA EXCEL и XmlImport
1 сообщений из 1, страница 1 из 1
VBA EXCEL и XmlImport
    #35067041
g_box
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет, Excel является клиентом и запрашивает данные у Web сервера через макрос:
Код: plaintext
1.
2.
3.
MyDate = "Year=" & Year(Now) & "&Month=" & Month(Now) & "&Day=" & Day(Now) & "&R_id=1"
ActiveWorkbook.XmlImport URL:="http://Report_server/xml.aspx?" & MyDate, ImportMap:=Nothing _
        , Overwrite:=True, Destination:=Range("DATA!$A$1")
Данные возвращаются в виде :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<?xml version="1.0" standalone="yes" ?> 
<NewDataSet>
 <xml>
  <id> 1 , 1002 , 1 </id> 
  <p_v> 3647 </p_v> 
 </xml>
 <xml>
  <id> 1 , 1006 , 1 </id> 
  <p_v> 2325 </p_v> 
 </xml>
.................
</NewDataSet>
Проблема возникает при нескольких запросах:
Ошибка1:
Run-time error 1004: Невозможно выполнить операцию т.к. XML-таблица привязанна к другой карте XML
Если перед запросом на сервер удалять все подключения и карты (MS EXCEL 2007!), то запросы повторные отрабатывают, но .....
Код: plaintext
1.
2.
3.
4.
5.
6.
For Each currentMap In ActiveWorkbook.XmlMaps
ActiveWorkbook.XmlMaps(currentMap.Name).Delete
Next
For Each currentConn In ActiveWorkbook.Connections
ActiveWorkbook.Connections(currentConn.Name).Delete
Next
Если запрашивать данные в один Excel с еще одной страницы после первого запроса, например:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
For Each currentMap In ActiveWorkbook.XmlMaps
ActiveWorkbook.XmlMaps(currentMap.Name).Delete
Next
For Each currentConn In ActiveWorkbook.Connections
ActiveWorkbook.Connections(currentConn.Name).Delete
Next
ActiveWorkbook.XmlImport URL:="http://Report_server/xml.aspx?" & MyDate, ImportMap:=Nothing _
        , Overwrite:=True, Destination:=Range("DATA!$A$1")
For Each currentMap In ActiveWorkbook.XmlMaps
ActiveWorkbook.XmlMaps(currentMap.Name).Delete
Next
For Each currentConn In ActiveWorkbook.Connections
ActiveWorkbook.Connections(currentConn.Name).Delete
Next
ActiveWorkbook.XmlImport URL:="http://Report_server/temp.aspx?mode=xml", ImportMap:=Nothing _
        , Overwrite:=True, Destination:=Range("DATA!$O$1")
Ошибка2:
Невозможно выполнить операцию т.к. её результат будет перекрывать существующею таблицу возникает на втором запросе ..... он видит эти занные как таблицу.

Удаление всех карт и подключений уже не помогает!

Пробовал очищать лист, работает (для Ошибка1), но тогда слетают все ссылки на этот лист DATA с листов отчетов :(? Как реализовать несколько запросов XML данных в Excel, может кто разбирался с подобной задачей? Спасибо!
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / VBA EXCEL и XmlImport
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]