Excel VBA:打印表单代码不起作用

有人可以帮助我,我有以下代码:

Sub CreateDealerCopy() Dim centreid Dim sheetno As Integer Dim modelno Dim modellist As New Collection Application.ScreenUpdating = False Sheets("-Summary").Select centreid = Range("B5").Value Sheets("-Summary").Copy Before:=Sheets(1) Cells.Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Selection.Validation.Delete ActiveSheet.Shapes.Range(Array("Rounded Rectangle 1")).Select Selection.Delete ActiveSheet.Shapes.Range(Array("Rounded Rectangle 2")).Select Selection.Delete ActiveSheet.Name = "Summary" Range("A1").Select Sheets("Model Summary").Select modellist.Add "field1" modellist.Add "field2" modellist.Add "field3" modellist.Add "field3" modellist.Add "field5" sheetno = 1 For Each modelno In modellist Sheets("Model Summary").Select Range("B11").Value = modelno Sheets("Model Summary").Copy After:=Sheets(sheetno) Cells.Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Selection.Validation.Delete ActiveSheet.Name = modelno Range("A1").Select sheetno = sheetno + 1 Next Sheets(Array("sheet1", "sheet2", "sheet3", "sheet4", "sheet5", "sheet6")).Copy ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\NewFolder\" & centreid & "_" & Format$(Date, "(dd-mm-yyyy)") & "_SP" & ".xlsx", _ FileFormat:=51 ActiveWorkbook.Close Windows("Stock.xlsm ").Activate "" Sheets(Array"sheet1", "sheet2", "sheet3", "sheet4", "sheet5", "sheet6")).Select Sheets("sheet1").Activate Application.DisplayAlerts = False ActiveWindow.SelectedSheets.Delete Application.DisplayAlerts = True 'Dim message As Integer 'message = MsgBox("Copy created", vbOKOnly) End Sub Sub CreateAllPeople() Dim people Sheets("-sheet1").Select Range("B5").Select Set people = Range("B5") Range("AE10").Select Do While ActiveCell.Value <> "" people = ActiveCell.Value Range("B5").Value = people CreateDealerCopy ActiveCell.Offset(1, 0).Select Loop End Sub 

当我尝试运行它时,出现以下错误:

在这里输入图像说明

我认为这与下面的行有关,但不知道如何解决这个问题或者是什么问题:

 Windows("Stock.xlsm ").Activate "" 

错误指的是这一行:

 Sheets(Array"sheet1", "sheet2", "sheet3", "sheet4", "sheet5", "sheet6")).Select 

用下面的代替它:

 Sheets(Array("sheet1", "sheet2", "sheet3", "sheet4", "sheet5", "sheet6")).Select 

正如@David W指出的那样,这一行会产生相同的错误:

 Windows("Stock.xlsm ").Activate "" 

它应该是:

 Windows("Stock.xlsm").Activate 

“Stock.xlsm”中的额外空间会生成下标超出范围的错误