2014-01-25 70 views
0

此問題與Excel 2003中的VB有關。我的Excel工作簿引用了一個VB宏。而且,這個宏有幾種用戶形式。我在表單中添加了一個新的複選框控件。問題是在這裏,當我嘗試訪問新的複選框通過1004訪問複選框時出現運行時錯誤

ActiveWorkSheet.DialogSheet("Options").EdBox("CheckBox1").Text 

它拋出1004運行時錯誤。我的腦袋正在旋轉,弄清楚爲什麼我似乎無法找出根本原因。現有的複選框可以在沒有任何問題的情況下訪問。非常感謝任何幫助。

我需要爲新的CheckBox設置任何屬性,然後才能從代碼訪問它?

+0

Excel電子表格上的用戶表單中的複選框是否已打開?它看起來像你只是想編輯文本是正確的? –

+0

Alex D,用戶表單是在宏定義上,我的excel引用了這個宏。我使用默認的「CheckBox1」名稱來訪問它從我的VB代碼,看看它是否工作。但是,事實並非如此。 –

+0

你實際使用的是DialogSheet還是用戶窗體?從舊的Excel 95開始,雖然我知道它們仍然受支持,但還沒有看到DialogSheet。 –

回答

1

您曾說過,

現有的所有複選框被通過DialogSheet類.EdBox方法訪問

所以邏輯上的1004錯誤是由於那裏是沒有.DialogSheet("Options")或沒有.EdBox("CheckBox1") - 最可能是後者。

在立即窗格中輸入:

?ActiveWorksheet.DialogSheet("Options").EdBox("CheckBox1").Name 

,看看它會彈出錯誤。如果確實如此,那麼您將不得不通過查看其屬性來查找您添加的CheckBox的實際名稱。鑑於表單有其他複選框,很可能您添加的複選框不會被命名爲CheckBox1。