2015-07-01 66 views
0

是否有人可以幫助我,我有以下代碼: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 

當我嘗試運行它,我得到以下錯誤:

enter image description here

我認爲它與下面的行有關係,但不知道如何解決問題或問題是什麼:

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

我不相信Activate方法接受任何參數,例如您在此處應用的「」。我還會修改名稱後面的空格「Stock.xlsm」 –

回答

1

該錯誤是指這條線:

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

與此替換:

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

作爲@大衛W¯¯指出的,這條線生成相同的錯誤:

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

它應該是:

Windows("Stock.xlsm").Activate 

「Stock.xlsm」中的額外空間會生成下標超出範圍錯誤

+0

感謝您的回答,這可能是我編輯了使用在stackoverflow上的代碼的原因,而不是錯誤的原因,您還能看到什麼錯誤? –