Excel VBA 创建工作簿并填充工作表
Posted
技术标签:
【中文标题】Excel VBA 创建工作簿并填充工作表【英文标题】:Excel VBA Create Workbook and populate with sheets 【发布时间】: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
【参考方案1】:
Sub NewWorkBookAndSheets()
Dim NewBook As Workbook
Dim n As Integer
Dim start As Integer
Set NewBook = Workbooks.Add
With NewBook
start = .Worksheets.Count + 1
if start < 31 then
For n = start To 31
.Sheets.Add After:=Sheets(n - 1)
Next n
For n = 1 To 31
.Worksheets(n).Name = n
Next n
end if
.SaveAs Filename:="NewBook.xlsx"
End With
End Sub
【讨论】:
准确!感谢您的快速回复。以上是关于Excel VBA 创建工作簿并填充工作表的主要内容,如果未能解决你的问题,请参考以下文章
在 Excel 中使用 VBA 将所有工作表的填充颜色设置为“无填充”