2015-11-06 56 views
0

我寫了一個代碼,並收到下標超出範圍錯誤,但我不知道爲什麼。說實話,我是VBA新手,並且將以前的問題的方法應用到這個實例中,但沒有成功,我希望有人能夠提供幫助;收到的錯誤消息 - 下標超出範圍

Workbooks.Open Filename:= _ 
    "Q:\Accounts Department\JM Period End ADI\1516\Stats\Period 01\Weekly Establishment Report 2015.xlsx" 
Sheets("P" & Range("C10").Value).Select 

我想要做的是打開Weekly Establishment Report文件,然後跳轉到該文件中的選項卡。但是,此選項卡可能會更改,因此對C10的引用正在完成我想要激活的選項卡的名稱。

因此,例如,打開「每週建立報告」並激活標籤P1 Wk4,其中「1 Wk4」出現在單元格C10中。

謝謝。

+0

表格指的是活動工作簿,而不是您剛剛打開的工作簿。 –

+0

@VincentG如果您在代碼中打開這樣的工作簿,它會成爲活動工作簿 –

+0

C10中的值是打開工作簿中的單元格?或者在已經打開的工作簿中打開這個新的工作簿? –

回答

0

或者:

C10是在你打開下一個工作簿在此之前,我們打開的工作簿,在這種情況下,你需要做的:


Dim ws As Excel.Worksheet 
Set ws = ActiveSheet 

Workbooks.Open Filename:= _ 
    "Q:\Accounts Department\JM Period End ADI\1516\Stats\Period 01\Weekly Establishment Report 2015.xlsx" 
Sheets("P" & ws.Range("C10").Value).Select 

OR C10與工作簿打開時激活的不同。在這種情況下你需要限定範圍內使用正確的紙張,如:


Workbooks.Open Filename:= _ 
    "Q:\Accounts Department\JM Period End ADI\1516\Stats\Period 01\Weekly Establishment Report 2015.xlsx" 
Sheets("P" & Sheets(1).Range("C10").Value).Select 

我會從整體上避免「有沒有必要選擇什麼」的演講現在...

+0

感謝Macho Man,這已經完成了。這一切都是一分鐘的學習曲線,但我非常感謝您的專業知識。 – FISHED

+0

或者,宏人,甚至!我的錯.... – FISHED