2013-11-04 57 views
0

我有下面的代碼:異常呼籲寬度改變

Dim widthS = 792 
Dim setW = Me.Controls("TableLayoutPanel" + CStr(x)) 
setW.Width = widthS - 26 

但每當我試試我得到的異常"Object reference not set to an instance of an object.",我已經試過DirectCast()但它沒有任何效果,沒有任何人有一個解決方案?
謝謝。

+0

爲什麼不使用'me.tablelayoutpanel.width ='? – enderland

+0

因爲我將'x'設置爲一個整數值。 – Lugia101101

+0

這真的是'VBA'嗎? YOu不能像您嘗試過的那樣在單個語句中聲明和分配變量(前兩個語句不是有效的VBA語法)。 –

回答

2

您需要在Dim語句中實際聲明變量類型。對於VBA,這你打成這樣,它可能是這樣的:

Dim widthS as Long 
Dim setW as Control 

Set setW = Me.Controls("TableLayoutPanel" + CStr(x)) 
widthS = 792 
setW.Width = widthS - 26 

編輯

這聽起來像你正在使用VB.Net。基本的前提是相同的,但在VB.Net中,您可以將變量聲明和實例化結合起來,例如:

Dim widthS as Long = 792 
+0

謝謝,但我有一些更多的代碼拋出相同的錯誤: '如果X不= 3 Then_ 昏暗setZS作爲Control_ setZS = Me.Controls( 「面板」 + CStr的(X))_ setZS.Width = widthS - 26_ End If'其中'_'是一個新行。 – Lugia101101