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

时间:2015-07-01 15:23:38

标签: excel vba excel-vba printing compiler-errors

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

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

当我尝试运行它时,我收到以下错误:

enter image description here

我认为这与以下行有关,但我不确定如何解决问题或问题是什么:

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

1 个答案:

答案 0 :(得分:1)

错误指的是这一行:

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”中的额外空格会生成下标超出范围错误