我有下面的代碼:異常呼籲寬度改變
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()
但它沒有任何效果,沒有任何人有一個解決方案?
謝謝。
我有下面的代碼:異常呼籲寬度改變
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()
但它沒有任何效果,沒有任何人有一個解決方案?
謝謝。
您需要在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
謝謝,但我有一些更多的代碼拋出相同的錯誤: '如果X不= 3 Then_ 昏暗setZS作爲Control_ setZS = Me.Controls( 「面板」 + CStr的(X))_ setZS.Width = widthS - 26_ End If'其中'_'是一個新行。 – Lugia101101
爲什麼不使用'me.tablelayoutpanel.width ='? – enderland
因爲我將'x'設置爲一個整數值。 – Lugia101101
這真的是'VBA'嗎? YOu不能像您嘗試過的那樣在單個語句中聲明和分配變量(前兩個語句不是有效的VBA語法)。 –