Excel 保存新工作簿在宏运行后保留工作表名称

Excel 保存新工作簿在宏运行后保留工作表名称,excel,vba,save,Excel,Vba,Save,我将一个文件拆分为每个15000行。我正在从电子表格中运行宏,该电子表格要求选择文件,然后将其拆分。但是,当我尝试命名分割文件时,它会与宏正在运行的文件的活动工作表名称一起出现,而不是与分割的文件一起出现 我必须拆分10多个文件,我需要在每次都不写的情况下更改名称 这是脚本的代码,你能调整它以获得我需要的输出吗 我试图在全球范围内寻找,但始终没有找到正确的例子 Sub Split_File() Dim iCalc As Long, i As Long Dim my_FileName As Va

我将一个文件拆分为每个15000行。我正在从电子表格中运行宏,该电子表格要求选择文件,然后将其拆分。但是,当我尝试命名分割文件时,它会与宏正在运行的文件的活动工作表名称一起出现,而不是与分割的文件一起出现

我必须拆分10多个文件,我需要在每次都不写的情况下更改名称

这是脚本的代码,你能调整它以获得我需要的输出吗

我试图在全球范围内寻找,但始终没有找到正确的例子

Sub Split_File()

Dim iCalc As Long, i As Long
Dim my_FileName As Variant
Dim wb As Workbook
Dim wbn As String

wbn = wb.ActiveSheet
iCalc = Application.Calculation

With Application

    .Calculation = xlManual
    .ScreenUpdating = False
    .EnableEvents = False

End With

my_FileName = Application.GetOpenFilename()
Set wb = Workbooks.Open(Filename:=my_FileName, ReadOnly:=False)

With wb.ActiveSheet

    For i = 2 To .Range("A" & Rows.Count).End(xlUp).Row Step 15000

        Range(.Range("A1:BP1").Address(0, 0) & "," & .Range(Cells(i, "A"), Cells(i, "BP").Resize(15000)).Address(0, 0)).Copy

            Workbooks.Add
            Range("A1").PasteSpecial xlPasteValues

            With ActiveWorkbook
                .SaveAs Filename:="itsownfolder\" & wbn & "Rows" & i & ".xlsx"
                .Close
            End With
    Next i

End With

With Application

    .Calculation = iCalc
    .ScreenUpdating = True
    .EnableEvents = True

End With

End Sub

在这个问题上:
wbn=wb.ActiveSheet
它应该返回一个错误,因为没有设置
wb
。您是否打算改为使用如下内容:
wbn=ActiveSheet.Name
?请务必意识到,稍后在代码中使用此变量创建
FileName
是正确的,它会返回一个错误。但那应该是我需要的名字。这是我打开的工作簿的名称,而不是我记录宏的工作簿的名称。如果我使用ActiveSheet.Name变量,则返回后者。因此,无需查看代码的其余部分(可能会更麻烦),但由于您使用
With
语句,可以将
wbn
替换为
中的
.Name
。另存为文件名:=“itsownfolder\”&wbn&“Rows”&I&“.xlsx”
感谢JvdV的回复。当我设置wbn=ActiveSheet.Name时,它只是吐出book2rowsxx、book3rowsxx等。嗨,JvdV,它仍然不工作。它将文件保存为book1rows2、book2rows15002、book3rows30002等。它应该获得文件名或至少是活动工作表的名称。