2017-05-24 40 views
0

我有一個腳本,爲工作簿中的每個工作表執行一次vlookup,然後將每個工作表分成它自己的文件。我有下面的腳本,但它不起作用。 vlookup部分工作正常,但我遇到了拆分問題。它不會失敗,並給我一個錯誤,它只是沒有做任何事情。VBA腳本將工作簿中的所有工作表拆分爲單獨的文件

Sub Splitbook() 
MyPath = "***Folder Location***" 
For Each sht In Workbooks("PO135 Division 1.xlsx").Worksheets 
sht.Copy 
ActiveSheet.Cells.Copy 
ActiveSheet.Cells.PasteSpecial Paste:=xlPasteValues 
ActiveSheet.Cells.PasteSpecial Paste:=xlPasteFormats 
ActiveWorkbook.SaveAs _ 
Filename:=MyPath & "\" & sht.Name & ".xlsx" 
ActiveWorkbook.Close savechanges:=False 
Next sht 
End Sub 

我需要分割的文件,然後將它們保存在不同的文件夾(「文件夾位置」) - 這只是暫時的佔位符,將它在運行之前更新劇本 -

有什麼想法?感謝幫助!

+0

打開一個新的工作簿,並給它一個名稱,如WB。然後在sheet1之前將sheet1複製到目標wb。然後刪除wb.sheet1。然後用一個文件名保存wb表格的名稱。你可以用宏記錄器來做這一切。 –

+0

https://www.extendoffice.com/documents/excel/628-excel-split-workbook.html – uSeruSher

回答

0

在常規模塊將這個:

Sub NewWb() 
Dim ws As Worksheet 
Dim wbActive As Workbook 
Dim wbNew As Workbook 
Dim x As Single 
Application.ScreenUpdating = False 
    Set wbActive = ActiveWorkbook 

    For Each ws In wbActive.Worksheets 
     Set wbNew = Workbooks.Add 
     ws.Copy Before:=wbNew.Sheets(1) 
     abc = "C:\Files\" & ws.Name & ".xlsx" 
     Application.DisplayAlerts = False 
     wbNew.Sheets("Sheet1").Delete 
     Application.DisplayAlerts = True 
     wbNew.SaveAs Filename:=abc 
     wbNew.Close Saved = True 
    Next ws 
    Set ws = Nothing 
    Set wbActive = Nothing 
    Set wbNew = Nothing 
    Application.ScreenUpdating = True  
End Sub 
相關問題