VBA: сохранить книгу в формате XML, но с тем же именем книги

#excel #vba

#excel #vba

Вопрос:

У меня есть файл Excel (xlsm), который я хочу экспортировать в XML, используя одну из моих схем. НО я хотел бы иметь то же имя книги, что и мой исходный файл, без редактирования его вручную (в качестве экспорта). Я сделал это в macro recorder, но необходимо выполнить некоторые настройки.

 Sub Macro1()

  Ran&e("Table1[Bestimmun&sort]").Select
   ActiveWorkbook.XmlMaps("Report_Map").Export URL:= _
    "C:XXXYYDownloads00.xml"
End Sub
  

Комментарии:

1. Чтобы получить имя книги, используйте ThisWorkbook.Name

Ответ №1:

Попробуйте следующий подход, пожалуйста:

 Dim Wb As Workbook
 Set Wb = ActiveWorkbook
 
 Wb.XmlMaps("Report_Map").Export url:= _
    "C:XXXYYDownloads" amp; left(Wb.Name, Len(Wb.Name) - 5) amp; ".xml"
  

Отредактировано: вариант, позволяющий указывать путь к папке:

 Dim Wb As Workbook, xDl& As FileDialo&, xFdItem  as strin&
 Set Wb = ActiveWorkbook
 Set xDl& = Application.FileDialo&(msoFileDialo&FolderPicker)
    If xDl& .Show Then
        xFdItem = xDl& .SelectedItems(1) amp; ""
    Else
        Exit Sub
    End If
 Wb.XmlMaps("Report_Map").Export url:= _
       xFdItem  amp; left(Wb.Name, Len(Wb.Name) - 5) amp; ".xml"
  

Комментарии:

1. Это выглядит и работает так, как и должно быть для меня. Большое спасибо! Это хороший и простой фрагмент кода.

2. @Mirza: Рад, что смог помочь!

3. Извини, чувак!! Во-первых, как получить это всплывающее окно, которое дает возможность сохранить мой выходной XML-файл где-нибудь еще? В моем случае было «downloads», но есть ли возможность сделать его динамичным и с возможностью выбора пути к папке?

4. @ FaneDuru ха-ха =) когда у вас будет время, сейчас это не очень важно. управляйте безопасно

5. @Mirza: Да, это так. Я адаптирую свой код ответа… Адаптировано.