Excel VBA - 使用特定工作表中的内容另存为文件

唐vc91

再次,我试图将我的 excel 文件另存为多个 xlsx 文件,如下所示:

在此处输入图片说明

我想将其保存到多个 xlsx 文件中,每个文件将包含 1 行范围(“Ax:Dx”)。我已经编写了如下代码来做到这一点

Sub split_file()
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim i As Long
    Dim lastrow1 As Long
    Dim lastrow2 As Long
    Set wb = ThisWorkbook
    On Error Resume Next
    
    'Dim filename As String
    Path = "C:\test"
   For i = 2 To Sheet2.Range("A" & Rows.Count).End(xlUp).Row
        'wb.Worksheets(3).Copy 'create new active workbook
        Sheets.Add.Name = Sheet2.Range("A" & i).Value
        With Worksheets(Sheet2.Range("A" & i).Value)
             Range("A1:D1").Value = Sheet2.Range("A" & i & ":D" & i).Value
            .SaveAs filename:=Path & "\" & Sheet2.Range("A" & i).Value, FileFormat:=xlOpenXMLWorkbook, Password:="Welcome1"
            .Close savechanges:=False
        End With
   Next i
   On Error GoTo 0
End Sub

我得到的结果如下图:

在此处输入图片说明

使用正确的数据另存为后打开文件后,它会在其中包含一些不需要的工作表:(。如下所示: 在此处输入图片说明

我希望它只保存为同名文件。有人可以帮忙寻找这个问题吗?非常感谢你们的每一个支持。

法尼杜鲁

请尝试下一个方法:

Sub split_file()
    Dim wb As Workbook, ws As Worksheet, wsNew As Worksheet, wbNew As Workbook
    Dim path As String, i As Long

    Set wb = ThisWorkbook
    Set ws = wb.Sheets(Sheet2.Name)
    
    path = "C:\test"
    For i = 2 To ws.Range("A" & rows.count).End(xlUp).row
             Set wbNew = Workbooks.Add(xlWBATWorksheet)
             Set wsNew = wbNew.Sheets(1): wsNew.Name = ws.Range("A" & i).value
             wsNew.Range("A1:D1").value = ws.Range("A" & i & ":D" & i).value
             wbNew.saveas FileName:=path & "\" & wsNew.Name, FileFormat:=xlOpenXMLWorkbook, password:="Welcome1"
             wbNew.Close savechanges:=False
   Next i
End Sub

我以为这Sheet2是一个代号...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用VBA在Access中将Excel文件另存为文本

使用excel VBA在IE中单击“另存为”

打开Word模板并将.doc另存为当前工作簿文件夹-Excel中的VBA

VBA-Excel-另存为并删除原始工作簿

如何在Excel VBA中将每个工作表的首页另存为PDF

VBA Excel将副本另存为txt文件

VBA从Access将Excel文件另存为.xls

Excel VBA另存为制表符分隔文件

Excel VBA - 使用通配符或部分匹配打开的工作簿无法另存为副本

VBA 将工作表另存为特定路径中的工作簿

将Excel工作表另存为JSON文件

使用新输入将单个excel工作表另存为新的excel文件

循环遍历 excel 文件中的工作表并另存为 csv 文件的问题

Excel for Mac VBA-另存为HTML在文件名中添加了意外的换行符

VBA Excel将新文件另存为活动文件的日期

Excel VBA 在默认文件夹中将文件另存为 Word 文档

Excel VBA打开Word模板,填充,然后另存为.docx文件

Excel VBA另存为不带分隔符的文本文件

Excel VBA 宏循环“另存为”会增加文件大小?

Excel VBA,另存为.txt时保持格式

Excel VBA UserForm打印屏幕另存为pdf

Excel VBA删除公式并另存为v2

另存为不接受包含“。”的字符串。在Excel VBA中

我可以用Excel中的VBA保存功能替换“保存”或“另存为”按钮吗?

如何在excel VBA中仅在“另存为”而不是在正常的“保存”上运行宏

如何使用Excel VBA打开.csv并将其另存为.xlsx

如何另存为excel和vba项目以备将来使用?

如何使用 Excel VBA 将另存为 HTML 电子邮件?

VBA仅将可视表另存为工作簿