У меня проблема с тем, что я беру данные из нескольких файлов и копирую их в свой текущий файл. Я работаю с данными, и теперь мне нужно создать новый файл, который содержит макросы и «стиль» из одного из файлов импорта и новых данных, которые я создал.
Так что в основном я беру файл, удаляю из него все данные. Затем возьмите мои данные и вставьте их в файл. Позже я сохраняю комбинации макросов из старого файла и новых данных в новый файл, в котором создается имя «сохранить как диалоговое окно».
Пока у меня есть рабочий импорт для всех файлов, а также моя работа с данными идет отлично. Только этот экспорт отсутствует.
Моя идея заключается в том, чтобы сделать путь к файлу открытым во время импорта, а затем во время импорта использовать этот путь для выполнения следующих действий:
- скопируйте этот файл,
- удалить все данные, кроме макросов и кнопок
- скопировать в него мои данные.
- откройте диалоговое окно «Сохранить как» и дайте пользователю возможность выбрать имя и место для его сохранения.
Однако я абсолютно не представляю, как что-то подобное можно сделать с точки зрения кода. Некоторые примеры кода с пояснениями - это все, что мне нужно, я надеюсь, что затем смогу адаптировать их под свои нужды.
Это код, который я пробовал до сих пор, но это просто обычное «сохранить мой текущий файл», которое не содержит макросов из другого файла или использует другой файл в качестве основы.
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)