2014-12-09 5 views
1

Я пытаюсь создать функцию Save As для отчета. В настоящее время мастер-лист имеет 25 вкладок. Я ищу 23 из 25, скопированных в Daily Save, связанных с конкретной папкой.Как скопировать несколько листов в новую книгу с помощью VBA

Кроме того, я ищу второе сохранение, связанное с другим местоположением папки.

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

Sub SaveMain() 

Application.EnableEvents = False 
'Stop ThisWorkbook VBA currently blocking the user being able to Save 

Dim FlName As String 
Dim FilePath As String 
Dim NewWkBk As Workbook 
Dim FileDate As String 

    FlName = " September Reporting" & InputBox("Enter Yesterday's Date DD/MM/YYYY:", "Creating New File...") & ".xlsb" 
    FilePath = "Z:\Call Agent Brief\Reporting\September Reporting\Reports" 

    Set NewWkBk = Workbooks.Add 
    Windows("September Reports Calculator - MASTER COPY.xlsb").Activate 
    Sheets(Array("Admin Tab", "Home Tab", "Dashboard", "Drop Down Values", _ 
     "Reports Home", "Deployments", "Daily Summary", "Daily Breakdown", _ 
     "Monthly Summary", "Monthly Breakdown - Title Page", "Monthly Breakdown", _ 
     "Monthly Rolling 12 Months", "Monthly Cancellations", "Non-Deployments", _ 
     "Non-Deployments Summary", "Non-Deployments Breakdown", "FNOL", "FNOL Summary", _ 
     "FNOL Breakdown", "FNOL Deployments by User", "FNOL Deployments by Team", _ 
     "FNOL Deployments by Insurer", "FNOL Non-Deployed Opportunities")).Copy After:=Workbooks(NewWkBk) 
    NewWkBk.SaveAs FilePath & "\" & FlName, FileFormat:=xlsb 


Application.EnableEvents = True 

End Sub 

При запуске макроса форма для ввода даты правильно загружается, однако появляется сообщение об ошибке времени выполнения.

Ошибка выполнения «13»: Несоответствие типа

отладка выделяет длинную Sheets copy строку. Даже когда я ограничиваю его копированием только одной вкладки, он возвращается с той же проблемой.

Я не могу просто вставить значения на новый лист, так как в листе мастера много форматирования, предназначенного для удобства пользователя. Насколько я могу судить, единственный способ - сделать копию всего листа новой.

Этот код предназначен только для создания первого файла сохранения (основная вкладка 23). Во-вторых, я надеюсь создать второй макрос, используя тот же процесс, что и этот, очевидно, с разными именами вкладок.

ответ

0

У вас возникнут проблемы, я думаю, что вы именовали файл, начиная с пробела, используя «/» в имени. Как только вы исправите это, я думаю, что это сработает:

Sub SaveMain() 

Application.EnableEvents = False 
'Stop ThisWorkbook VBA currently blocking the user being able to Save 

Dim FlName As String 
Dim FilePath As String 
Dim NewWkBk As Workbook 
Dim FileDate As String 

    FlName = "September Reporting" & InputBox("filename ", "Creating New File...") & ".xlsb" 
    FilePath = "C:\users\adm123\documents\xlworking" 
    Sheets(Array("Admin Tab", "Home Tab", "Dashboard", "Drop Down Values", _ 
     "Reports Home", "Deployments", "Daily Summary", "Daily Breakdown", _ 

     "Monthly Summary", "Monthly Breakdown - Title Page", "Monthly Breakdown", _ 

     "Monthly Rolling 12 Months", "Monthly Cancellations", "Non- 
Deployments", _ 

     "Non-Deployments Summary", "Non-Deployments 
Breakdown", "FNOL", "FNOL Summary", _ 

     "FNOL Breakdown", "FNOL Deployments by User", "FNOL Deployments by 
Team", _ 


      "FNOL Deployments by Insurer", "FNOL Non-Deployed 
Opportunities")).Copy 

    newfilename = FilePath & "\" & FlName 

    With ActiveWorkbook 
    .SaveAs newfilename, FileFormat:=50 
    .Close 0 

    End With 


Application.EnableEvents = True 


End Sub 

 Смежные вопросы

  • Нет связанных вопросов^_^