2015-12-23 3 views
2

Как сохранить лист1 в папку A и Sheet2 в папку B в VBA Excel?
В моей книге у меня есть 4 листа C, а рабочий лист D - это интерфейс.Как сохранить рабочий лист A в папку A и рабочий лист B в папку B?

Путь к папке находятся:

  • C:\Main Folder\Folder A\
  • C:\Main Folder\Folder B\

    FilePath1 = "C:\Main Folder\Folder A\" 
    FilePath2 = "C:\Main Folder\Folder B\" 
    
    Sheets("Sheet1").Copy 
    Filename = ControlNumber.Value 
    ActiveWorkbook.SaveCopyAs FilePath1 & "\" & Filename & ".xls" 
    ActiveWorkbook.Close savechanges:=False 
    
    Sheets("Sheet2").Copy 
    Filename = ControlNumber.Value 
    ActiveWorkbook.SaveCopyAs FilePath2 & "\" & Filename & ".xls" 
    
+1

Возможный дубликат [Сохранить таблицу с формой Сохранить как место в Excel VBA] (http://stackoverflow.com/questions/15886130/save-a-worksheet- with-form-save-as-location-in-excel-vba) – diziaq

+1

Имея путь, заканчивающийся на '... \', нет необходимости в '... th1 &" \ "& File ...' –

ответ

0

код отлично работает для меня этот путь

FilePath1 = "C:\Main Folder\Folder A\" 
FilePath2 = "C:\Main Folder\Folder B\" 

Sheets("Sheet1").Copy 
Filename = ControlNumber.Value 
ActiveWorkbook.SaveAs FilePath1 & Filename & ".xls" 
ActiveWorkbook.Close savechanges:=False 

Sheets("Sheet2").Copy 
Filename = ControlNumber.Value 
ActiveWorkbook.SaveCopyAs FilePath2 & Filename & ".xls" 
ActiveWorkbook.Close savechanges:=False 

какие ошибки вы получаете?

для тестирования я установил:

Dim ControlNumber As Range 
Set ControlNumber = Sheet1.Cells(1, 1) 
Dim FilePath1 As String, FilePath2 As String, Filename As String 

EDIT

On Error Resume Next 
MkDir Environ("USERPROFILE") & "\Main Folder" 
MkDir Environ("USERPROFILE") & "\Main Folder\Folder A\" 
MkDir Environ("USERPROFILE") & "\Main Folder\Folder B\" 
On Error GoTo 0 

FilePath1 = Environ("USERPROFILE") & "\Main Folder\Folder A\" 
FilePath2 = Environ("USERPROFILE") & "\Main Folder\Folder B\" 

Sheets("Sheet1").Copy 
Filename = ControlNumber.Value 
ActiveWorkbook.SaveAs FilePath1 & Filename & ".xls" 
ActiveWorkbook.Close savechanges:=False 

Sheets("Sheet2").Copy 
Filename = ControlNumber.Value 
ActiveWorkbook.SaveCopyAs FilePath2 & Filename & ".xls" 
ActiveWorkbook.Close savechanges:=False 
+0

Run -time error '1004': Microsoft Excel не может получить доступ к файлу 'C: \ Main Folder \ Folder A \ Filename1.xls. Существует несколько возможных причин: Имя файла или путь не существует. Файл используется другой программой. Книга, которую вы пытаетесь сохранить, имеет то же имя, что и открытая книга. –

+0

существует ли папка? это файл, используемый другим пользователем/процессом? –

+0

Да, все папки уже существуют и подготовлены ... вот почему я смущаюсь с этим, что я все еще получаю сообщение об ошибке, но если я использую thisworkbook.path, то, если Filepath1, я получаю Sheet1 сохранен ... но ошибка на листе 2 –

0

Вы включили путь Seperator дважды в Filepath т.е., а также при сохранении файла. удалить «/» от имени файла или при сохранении

FilePath1 = "C:\Main Folder\Folder A\" 
ActiveWorkbook.SaveCopyAs FilePath1 & "\" & Filename & ".xls" 
+0

oh uh ... как и мой комментарий? : D –

+0

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

+0

все в порядке ^^ –

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