Excel VBA, Нужно сделать копию файлов, без замены основного файла VBA - PullRequest
0 голосов
/ 03 ноября 2019

Мне нужно создать новый файл Excel. С данными из основного (с VBA) файла Excel. Может кто-нибудь помочь мне с этим. Потому что теперь я могу только сделать Сохранить как, и он сохраняет мой основной файл Excel. Но мне нужно сделать копию этого файла с определенными ячейками и столбцами. На данный момент у меня есть это.

Как должна выглядеть копия файла Excel

Dim newExcel As Excel.Application
    Dim newWorkbook As Excel.Workbook
    Dim newWorkSheet As Excel.Worksheet

    Set newExcel = CreateObject("Excel.Application")
    Set newWorkbook = newExcel.Workbooks.Add
    Set newWorkSheet = newWorkbook.Worksheets(1)

    newWorkSheet.Range("A1") = "Klients"
    newWorkSheet.Range("B1") = "Bilance 06.17"
    newWorkSheet.Range("C1") = "Bilance 07.17"
    newWorkSheet.Range("D1") = "Bilance 08.17"
    newWorkSheet.Range("E1") = "Bilance 09.17"
    newWorkSheet.Range("F1") = "Bilance 10.17"
    newWorkSheet.Range("G1") = "Kopa"
    newWorkSheet.Range("A2") = TextBox1.Text
    newWorkSheet.Range("B2") = TextBox2.Text
    newWorkSheet.Range("C2") = TextBox3.Text
    newWorkSheet.Range("D2") = TextBox4.Text
    newWorkSheet.Range("E2") = TextBox5.Text
    newWorkSheet.Range("F2") = TextBox6.Text
    newWorkSheet.Range("G2") = TextBox7.Text

With Application.FileDialog(msoFileDialogSaveAs)
.InitialFileName = "C:\Users\" & Environ("UserName") & "\Desktop\" & newExcel
.Execute
End Sub




Ответы [ 2 ]

0 голосов
/ 03 ноября 2019

Создайте новый экземпляр, скопируйте в него значения и затем сохраните этот экземпляр (новый). Вы не показали код, в котором пытались его сохранить. newWorkbook.saveas, куда вы помещаете параметр имени файла из filedialogbox, должен работать. Или просто выполните NewWorkbook.Save, поскольку это новая рабочая книга, средство выбора имени файла может появиться по умолчанию.

0 голосов
/ 03 ноября 2019

Попробуйте, может быть, это:

With newExcel
    .Visible = True
    With .FileDialog(msoFileDialogSaveAs)
        .InitialFileName = "C:\Users\" & Environ("UserName") & "\Desktop\" & newExcel.Workbooks(1).name
        .Show
        '.Execute
    End With
    ' If you nedd to close
    .Quit
    Thisworkbook.Activate
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...