【发布时间】:2018-02-26 22:19:40
【问题描述】:
(Excel 2007)
我有两段代码。
创建并保存一个新的 Excel 工作簿:
Sub NewWorkBook()
Set NewBook = Workbooks.Add
With NewBook
.SaveAs Filename:="NewBook.xlsx"
End With
End Sub
另一个创建工作表:
Public Sub CreateWorksheets()
Dim n As Integer
n = 1
Dim WrkSheet As Worksheet
For n = 1 To 31
If n > Worksheets.Count Then
Set WrkSheet = Sheets.Add(After:=Sheets(Worksheets.Count))
Else
Set WrkSheet = Sheets(Worksheets.Count)
End If
WrkSheet.Name = n
Next n
End Sub
我需要使用这些来创建“工作簿 B”并使用工作表填充它,但所有代码都必须从“工作簿 A”运行。
我可以让第一个 sub 来创建工作簿,但 CreateWorksheets sub 只能在包含代码的工作簿上工作 - 然后只有在我删除了所有工作表后才删除一个工作表。
有什么想法吗?
【问题讨论】:
-
我很确定,如果您在第二个宏中将您的对象限定在它们所在的工作簿中,那将起作用 - 例如,使用
If n > Worksheets.Count Then而不是使用If n > Workbooks("NewBook.xlsx").Worksheets.Count Then