Повторное использование / копирование макросов из файла в другой файл - PullRequest
0 голосов
/ 11 января 2019

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

Так что в основном я беру файл, удаляю из него все данные. Затем возьмите мои данные и вставьте их в файл. Позже я сохраняю комбинации макросов из старого файла и новых данных в новый файл, в котором создается имя «сохранить как диалоговое окно».

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

Моя идея заключается в том, чтобы сделать путь к файлу открытым во время импорта, а затем во время импорта использовать этот путь для выполнения следующих действий:

  • скопируйте этот файл,
  • удалить все данные, кроме макросов и кнопок
  • скопировать в него мои данные.
  • откройте диалоговое окно «Сохранить как» и дайте пользователю возможность выбрать имя и место для его сохранения.

Однако я абсолютно не представляю, как что-то подобное можно сделать с точки зрения кода. Некоторые примеры кода с пояснениями - это все, что мне нужно, я надеюсь, что затем смогу адаптировать их под свои нужды.

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

Sub DateiSpeichern()
    Dim StandardPfad As String
    Dim ExportBlatt As Worksheet
    Dim NeueDatei As Workbook

    StandardPfad = "C:\X"

    Set NeueDatei = Workbooks.Add
    ThisWorkbook.Sheets("Test").Copy Before:=NeueDatei.Sheets(1)
    Application.DisplayAlerts = False
    Sheets(2).Delete
    Application.DisplayAlerts = True

    'displays the save file dialog
    StandardPfad = Application.GetSaveAsFilename(FileFilter:= _
      "Exceldateien (*.xlsx), *.xlsx", Title:="Datei speichern", _
      InitialFileName:="")

   NeueDatei.SaveCopyAs Filename:=StandardPfad

   NeueDatei.Close savechanges:=False
End Sub

Привет

вот моя первая попытка его кодирования. Это не работает, но я надеюсь, что я получил хотя бы правильную идею.

Sub DateiSpeichern()
        Dim StandardPfad As String
        Dim ExportBlatt As Worksheet
        Dim NeueDatei As Workbook
        Dim VorlagenDatei As Workbook

'Sets a default directory
StandardPfad = "C:\Test"

'opens the dialog to choose the template file.
Set VorlagenDatei = Workbooks.Open(StandardPfad)

StandardPfad = Application.GetSaveAsFilename(FileFilter:= _
        "Exceldateien (*.xlsx), *.xlsx", Title:="Datei speichern", _
        InitialFileName:="")

'copies the selected file (something is wrong here i would assume)
VorlagenDatei.SaveCopyAs Filename:=StandardPfad

'copies my worksheet (Test) into the newly generated (copied) file. Here I need to somehow specifie the range where it is copied to.
ThisWorkbook.Sheets("Tires").Copy Before:=NeueDatei.Sheets(1)
...