2014-12-29 35 views
0

我的excell宏中有一個非常基本的問題。我錄一個宏用的Excell,只是選擇了一個表就可以了,如你所想,所產生的代碼如下:Excel宏中的錯誤:應用程序定義的或對象定義的錯誤

Sub Macro2() 
    Sheets("Graphs").Select 
End Sub 

但是當我嘗試執行上面的宏,我得到的錯誤:「應用程序 - 定義或對象定義的錯誤「

以前有人看過這個嗎?

+0

如果紙張被隱藏或你有你的代碼是什麼莫名其妙改名,你會得到一個錯誤,但不是一個。我建議您關閉Excel的所有實例,可選擇重新啓動整個計算機,然後重試。調試時發生的重複崩潰可能會破壞工作環境的穩定性。 – Jeeped

回答

0

您正在收到的錯誤表明VBA無法確定您所指的是哪個對象。

VBA很好,因爲它是「聰明的」,並且允許您在沒有詳細說明您指的是什麼的情況下進行編程。

由於完全相同的原因,VBA很糟糕,因爲要確定爲什麼VBA不使用您希望它使用的對象,除非您知道VBA使用哪個優先級,否則很難確定。不僅對於對象也是如此,對於「隱式」類型變量也是如此,您可能希望VBA將您的變量作爲數字處理,但VBAs「智能」會導致它將其作爲字符串處理。

解決方法是顯式地鍵入想要VBA執行的操作,在您的情況下,VBA可能試圖在不具有名爲「Graphs」的工作表的不同工作簿中訪問名爲「Graphs」的工作表。

試試這個:

Sub MyMacro() 
Dim myWorkBook As Excel.Workbook 
Dim myWorkSheet As Excel.Worksheet 

Set myWorkBook = Application.Workbooks("nameofyourworkbook.xlsm") 
Set myWorkSheet = myWorkBook.Sheets("Graphs") 
myWorkSheet.Select 

End Sub 
相關問題