Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 使用表格将多张图纸保存到多个工作簿_Vba_Excel - Fatal编程技术网

Vba 使用表格将多张图纸保存到多个工作簿

Vba 使用表格将多张图纸保存到多个工作簿,vba,excel,Vba,Excel,我现在有一本工作手册,里面有大约300张工作表,我想把这些工作表分为不同的工作手册,有些工作表可以分为多个工作簿 为了简化,假设我的工作簿中有表格:鸭子、龙、鹅、鲑鱼、鳕鱼 我想把鸭、龙和鹅的床单保存到一本叫做《动物》的新书中。将鲑鱼和鳕鱼放入一本叫做“鱼”的手册中。然后将鸭、鹅、鲑鱼和鳕鱼放入名为“食用”的工作簿中 理想情况下,我希望在第一张工作表中放置一个表,其中a列具有工作表名称,B列具有新工作簿名称。单击宏,A中的工作表名称将保存在新工作簿中,标题为B列中的内容。这样,我的团队使用该界面

我现在有一本工作手册,里面有大约300张工作表,我想把这些工作表分为不同的工作手册,有些工作表可以分为多个工作簿

为了简化,假设我的工作簿中有表格:鸭子、龙、鹅、鲑鱼、鳕鱼

我想把鸭、龙和鹅的床单保存到一本叫做《动物》的新书中。将鲑鱼和鳕鱼放入一本叫做“鱼”的手册中。然后将鸭、鹅、鲑鱼和鳕鱼放入名为“食用”的工作簿中

理想情况下,我希望在第一张工作表中放置一个表,其中a列具有工作表名称,B列具有新工作簿名称。单击宏,A中的工作表名称将保存在新工作簿中,标题为B列中的内容。这样,我的团队使用该界面会更友好一些

任何建议或帮助都将不胜感激

给你:

你需要:

具有name=“list\u table”的表

包括:

2列标题为“工作表名称”和“工作簿名称”

在“工作表名称”列中,您需要将工作表列表放入工作簿中,例如:(“鸭子”、“鹅”)

在“工作簿名称”列中,您需要列出新工作簿名称

宏将在新工作簿中复制指定的工作表,并使用您在“工作簿名称”列中填写的工作簿名称保存它


这听起来是一个有效的方法。如果你有任何问题,发表一个问题,我们将很乐意帮助你。(但是仅仅告诉我们你打算做什么并不是一个好问题,所以这可能很快就会结束。)嗨,谢谢你的宏观。我想它会完全按照我的要求去做,但是它在接近结尾时被卡住了:使用工作表(工作表名称)。使用工作表名称复制结束部分在调试器中被卡住(运行时错误9)。尝试更改名称do sheet_names,但仍会导致错误(运行时错误13)。很遗憾,我在此处发布代码之前测试了代码,运行时没有出现错误,也许您应该检查您的工作表名称,更改代码中的变量名?,尝试使用名为“duck”的工作表名称如果什么都不管用,那么试着自己调试它。这不是一段非常复杂的代码,这也是编写自己的代码的良好基础!:)啊,我明白了!当我在“工作表名称”列中输入多个工作表名称时。
    Option Explicit

    Public Sub export_asignated_workbook()

    Dim list_table As ListObject
    Set list_table = ThisWorkbook.Sheets(Sheet1.Name).ListObjects("list_table")

    Dim sheet_names As Range
    Dim workbook_names As Range

    Dim i As Long
    Dim sheet_name As String
    Dim new_workbook_name As String
    Dim save_path As String

    Set workbook_names = list_table.ListColumns("sheet_names").DataBodyRange

    For i = 1 To workbook_names.Cells.Count

        sheet_name = workbook_names(i)
        new_workbook_name = workbook_names(i).Offset(0, 1)

        With ThisWorkbook.Sheets(sheet_name)
        .Copy
        End With

        save_path = ThisWorkbook.Path & "\" & new_workbook_name
        ActiveWorkbook.SaveAs save_path, 51

    Next i

    End Sub