Excel 将特定图纸导出到多个工作簿中

Excel 将特定图纸导出到多个工作簿中,excel,merge,split,export,Excel,Merge,Split,Export,我现在用的是一个宏。我现在拥有的是一个marco,它将每个工作表导出到一个单独的工作簿中,这非常好 我的问题是,我将列链接到另一个工作表(“映射”),以进行数据验证 当我打开新创建的工作簿时,数据验证链接都断开了 因此,我想知道是否可以更改此宏,使其在导出每个工作表时,也将“映射”工作表导出到每个新创建的工作簿中?我目前使用的代码如下: 选项显式 将工作簿设置为工作簿 将新工作簿设置为工作簿 子工作表() 暗指针和长指针一样长 设置MainWorkBook=ActiveWorkbook 范围(

我现在用的是一个宏。我现在拥有的是一个marco,它将每个工作表导出到一个单独的工作簿中,这非常好

我的问题是,我将列链接到另一个工作表(“映射”),以进行数据验证

当我打开新创建的工作簿时,数据验证链接都断开了

因此,我想知道是否可以更改此宏,使其在导出每个工作表时,也将“映射”工作表导出到每个新创建的工作簿中?我目前使用的代码如下:

选项显式
将工作簿设置为工作簿
将新工作簿设置为工作簿
子工作表()
暗指针和长指针一样长
设置MainWorkBook=ActiveWorkbook
范围(“E2”).Value=main工作簿.Sheets.Count
Application.ScreenUpdate=False“提高性能”
对于指向main工作簿.Sheets.Count的指针=2
设置新工作簿=工作簿。添加
main工作簿.Sheets(指针).Copy After:=新建工作簿.Sheets(1)
Application.DisplayAlerts=False
新建工作簿。工作表(1)。删除
Application.DisplayAlerts=True
使用新工作簿
.SaveAs文件名:=“H:\2017\Macro\”&MainWorkBook.Sheets(指针).Name&“.xlsx””您可以更改为您的
以
新建工作簿。关闭保存更改:=True
下一个指针
Application.ScreenUpdating=True
范围(“D5”).Value=“”

结束子
已经玩了一段时间,我想你可以改变

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


这保留了数据验证

您有什么具体问题要问我们吗?您当前的问题是“是否可能?”,这可能对您没有多大帮助。在上面的代码中,用户是否可以选择文件夹路径而不是“H:\2017\Macro\”。像一个输入框?文件名将保持不变(工作表名称)谢谢,请更改为
SaveAs filename:=Application.GeSaveAsFilename
非常感谢。我希望的最后一个问题:-)如果我想将其中一个工作表(映射)从保存为单个文件中排除,我将如何做?不用担心,我建议您在For循环开始的下面添加一个If语句,例如,
If MainWorkBook.sheets(Pointer)。名称“Mapping”然后
您需要在
下一个指针
MainWorkBook.Sheets(Array(Pointer, "Mapping")).Copy After:=NewWorkBook.Sheets(1)