Vba 使用名称列表创建、保存和关闭新工作簿
我有一个我想创建的83本工作簿的未来名称列表。 该列表位于工作簿“案例名称”的第一列 这是我正在使用的代码,但它给了我一个错误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 &
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
是我要保存和关闭的工作簿。