У меня сложный XSD. В редакторе excel в разделе XML я могу щелкнуть по «source» и добавить XSD в карту данных, а затем сопоставить узлы определенным ячейкам, строкам и т. Д.Excel 2013 - привязка XML VBA при перезапуске
Теперь я могу ввести данные и экспортировать XML как ожидалось, приятно. Когда я снова открываю XLS, происходит что-то странное, и excel говорит, что моя карта XML сломана и просит удалить сломанную карту и показывает один узел, который, по его мнению, неверен. Но все опции неактивны и единственный вариант я нашел, чтобы удалить карту с помощью VBA,
ActiveWorkbook.XmlMaps("JPK_mapa").Delete
Но когда карта удаляется все отображения исчезли, и я должен добавить карту снова и сделать все отображения вручную. Это не сложно для меня, но у обычных пользователей могут быть проблемы с этим, и я бы хотел просто дать им XLS для заполнения данными.
Я не могу изменить XSD, не влияю на его содержимое, поэтому я решил, что мне нужно жить с этим, и научить excel каким-то образом удалить и добавить это сопоставление снова в автозапуск. Поскольку есть много сопоставлений, и это всего лишь несколько кликов в excel, я бы хотел записать это как макрос. Но когда я включаю запись, он не записывает сопоставления, которые я делаю.
Q1: Можно ли каким-либо образом записать формирование картографирования? Или есть способ как-то автоматизировать этот процесс?
Я также узнал интересную вещь. Если я открою свой разбитый на карту xlsx как zip и удалю xmlMaps.xml из него, после открытия xls снова я могу открыть XML-источник данных, и когда я добавлю xsd, все сопоставления будут восстановлены и правильно привязаны к ячейкам в xls (выделены полужирным шрифтом в прилагаемом рисунке). Это заставляет меня задавать вопрос 2.
Q2: Есть ли способ удалить сопоставления в VBA так, чтобы при добавлении снова он запоминал отображения?
Надеюсь, вы можете дать мне несколько советов, спасибо.
После того, как вы настроили карту, перед закрытием файла, попробуйте сделать 'ActiveWorkbook.XmlMaps ("JPK_mapa") Экспорт. ("C: \ путь \ к \ file.xml", True)', а затем попробуйте использовать аналогичный метод «Импорт» после повторного открытия/удаления.Любопытно посмотреть, работает ли это (это не в моих силах, поэтому я, вероятно, не могу больше помочь) –
спасибо, я уже это пробовал. Кажется, что экспорт экспортирует XML-данные не в сопоставления схемы :-( – norbi771
Вы использовали «ActiveWorkbook.XmlMaps (« JPK_mapa »). Schemas'? –