【问题标题】:Excel VBA Create Workbook and populate with sheetsExcel VBA 创建工作簿并填充工作表
【发布时间】: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

标签: excel vba


【解决方案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

【讨论】:

  • 准确!感谢您的快速回复。
猜你喜欢
  • 2018-01-04
  • 2013-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多