2014-06-24 131 views
-1

我收到的錯誤是運行時錯誤'9':下標超出範圍。Excel 2010:下標超出範圍錯誤

Sub Workbook_Open() 

'Turn off any alerts that maybe displayed. 
Application.DisplayAlerts = False 
'Turn of the screen updates 
Application.ScreenUpdating = False 

'Declare the workbook, create it, save it and close it 
Dim wk As Workbook 
Set wk = Workbooks.Add 
wk.SaveAs Filename:="C:\Saved File\KPI_Grid.xlsm", FileFormat:=52, Password:="", WriteResPassword:="", _ 
ReadOnlyRecommended:=False, CreateBackup:=False 
wk.Close 

'Open the workbook again. This will get rid of the 'Compatibilty View' and then activate the orginal workbook 
Application.Workbooks.Open Filename:="C:\Saved File\KPI_Grid.xlsm" 
Workbooks("KPI Grid V5K1 - macro testing.xlsm").Activate 
Worksheets("Weekly").Activate 
'Select all cells and copy them 
Cells.Select 
Selection.Copy 
'Activate the workbook and sheet that we are going to paste into. 
Workbooks("KPI_Grid.xlsm").Activate 
Worksheets("Sheet1").Activate ' ******************ERROR HERE ****************** 
Cells.Select 
Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _ 
    , SkipBlanks:=False, Transpose:=False 
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
    :=False, Transpose:=False 
'Activate the previous workbook again. 
Workbooks("KPI Grid V5k1 - macro testing.xlsm").Activate 
Worksheets("Monthly").Activate 
Cells.Select 
Cells.Copy 
Workbooks("KPI_Grid.xlsm").Activate 
Worksheets("Sheet2").Activate 
Cells.Select 
Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _ 
    , SkipBlanks:=False, Transpose:=False 
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
    :=False, Transpose:=False 

末次

我認爲這是一個相對簡單的任務。
目的是創建一個新的工作簿,複製兩張表的值,然後保存並關閉新的工作簿。
爲什麼這段代碼錯誤?

+4

Stack Overflow是不是一個調試服務。 –

+0

我只是偶然發現了一個你曾評論過類似情況的舊帖子。 http://stackoverflow.com/questions/22815124/run-time-error9-subscript-out-of-range?rq=1 - 你如何檢查表名稱標題? – DJenkins

回答

2

進入這一行Worksheets("Sheet1").Activate
F9
F5
檢查畫面 - 已工作簿 「KPI_Grid.xlsm」 被激活?
它實際上是否有名爲「Sheet1」的工作表?

如果工作表Sheet1不在同一工作簿中的代碼,那麼這自然會錯誤 - 你需要確保一切合格這樣的:

ActiveWorkbook.Worksheet("Sheet1").Activate

+0

嗨whytheq, 我點擊做了上述,它會引發一個運行時錯誤1004.我跑了一個網絡快速搜索,它說這可能是因爲我的代碼是在ThisWorkbook。這可能是我的問題的路線?我也試着對上面的行進行上述操作,它也拋出了相同的錯誤。 Regards, – DJenkins

+0

@DJenkins - 而不是F5嘗試只用「F8」進行操作 - 它是第一個錯誤? – whytheq

+0

....在那裏等待 - 如果Sheet1與代碼不在同一工作簿中,那麼當然它會出錯! – whytheq