将特定工作表导出到多个工作簿

真的停留在我目前使用的macros。 我现在所拥有的是一个marco,它将每张工作表导出到一个单独的工作簿中,这个工作簿非常棒。

我的问题是我有列链接到另一个工作表(“映射”)进行数据validation。

当我打开新创build的工作簿时,数据validation链接全部断开。

所以我想知道是否有可能改变这个macros,所以当它导出每个工作表,它也导出到每个新创build的工作簿“映射”工作表? 我目前使用的代码如下:

Option Explicit Dim MainWorkBook As Workbook Dim NewWorkBook As Workbook Sub ExportWorksheet() Dim Pointer As Long Set MainWorkBook = ActiveWorkbook Range("E2").Value = MainWorkBook.Sheets.Count Application.ScreenUpdating = False 'enhance the performance For Pointer = 2 To MainWorkBook.Sheets.Count Set NewWorkBook = Workbooks.Add MainWorkBook.Sheets(Pointer).Copy After:=NewWorkBook.Sheets(1) Application.DisplayAlerts = False NewWorkBook.Sheets(1).Delete Application.DisplayAlerts = True With NewWorkBook .SaveAs filename:="H:\2017\Macro\" & MainWorkBook.Sheets(Pointer).Name & ".xlsx" 'you may change to yours End With NewWorkBook.Close SaveChanges:=True Next Pointer Application.ScreenUpdating = True Range("D5").Value = "" End Sub 

玩过高招后,我认为你可以改变

 MainWorkBook.Sheets(Pointer).Copy After:=NewWorkBook.Sheets(1) 

 MainWorkBook.Sheets(Array(Pointer, "Mapping")).Copy After:=NewWorkBook.Sheets(1) 

其中保留了数据validation