Vba 使用名称列表创建、保存和关闭新工作簿

Vba 使用名称列表创建、保存和关闭新工作簿,vba,excel,Vba,Excel,我有一个我想创建的83本工作簿的未来名称列表。 该列表位于工作簿“案例名称”的第一列 这是我正在使用的代码,但它给了我一个错误 Sub createworkbook() Dim casenames As Workbook Dim ptnames(82) As String Const FPath As String = "" Set casenames = Workbooks.Open("") ``For i = 1 To 83 Workbooks.Add (FPath &

我有一个我想创建的83本工作簿的未来名称列表。 该列表位于工作簿“案例名称”的第一列

这是我正在使用的代码,但它给了我一个错误

Sub createworkbook()

Dim casenames As Workbook
Dim ptnames(82) As String
Const FPath As String = ""

Set casenames = Workbooks.Open("")

``For i = 1 To 83
    Workbooks.Add (FPath & casenames.Sheets("Sheet1").Cells(i, 1).Text & ".xlsx")
Next i

Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False

End Sub``

请帮助。

您应该将名称读入数组,然后在数组上循环

此外,不能使用名称添加新工作簿,必须添加工作簿,然后使用所需名称保存,然后关闭

试试这个:

Option Explicit

Sub createworkbook()

    Dim casenames As Workbook
    Dim ptnames As Variant
    Const FPath As String = "C:\temp\"

    'Disable the calculation and screenupdating
    Application.Calculation = xlCalculationManual
    Application.ScreenUpdating = False

    'Assume the casenames workbook is already open
    Set casenames = Workbooks("casenames.xlsx")
    ptnames = casenames.Worksheets(1).Range("A1:A83").Value


    Dim wbk As Workbook
    Dim i As Long
    For i = LBound(ptnames, 1) To UBound(ptnames, 1)
        Set wbk = Workbooks.Add
        wbk.SaveAs FPath & ptnames(i, 1) & ".xlsx"
        wbk.Close
    Next i

    'Reinstate the calculation and screenupdating
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True

End Sub

谢谢你,这是有效的,但我仍然不明白你为什么要使用:
Set wbk=Workbooks.Add
然后
wbk.SaveAs FPath&ptnames(I,1)&.xlsx”
为什么你不能只说
Workbooks.Add
然后
Workbooks.SaveAs
方法返回对所添加工作簿的引用,并避免我假设
ActiveWorkbook
是我要保存和关闭的工作簿。