簡體   English   中英

將Dim'ing工作表作為工作表而不是變體時,“找不到方法或數據成員”

[英]“Method or Data Member Not Found” when Dim'ing Worksheet as Worksheet but not Variant

考慮這個簡單的例子。 在新工作表中創建一個名為Checkbox1的ActiveX復選框

請嘗試以下兩個子例程。 第一個沒有編譯“找不到方法或數據成員”錯誤,第二個工作正常。

為什么第一個例子不起作用?

Option Explicit

Sub DoesntWork()
Dim ws As Worksheet
Set ws = Worksheets(1)

MsgBox "Checkbox state is: " + CStr(ws.CheckBox1.Value)

End Sub

Sub Works()
Dim ws As Variant
Set ws = Worksheets(1)

MsgBox "Checkbox state is: " + CStr(ws.CheckBox1.Value)

End Sub

問題在於行ws.CheckBox1.Value 你不能像這樣使用它,因此你得到了這個錯誤。 試試這個

Sub Sample()
    Dim ws As Worksheet
    Dim objole As OLEObject

    Set ws = Worksheets(1)

    Set objole = ws.OLEObjects("CheckBox1")

    MsgBox "Checkbox state is: " & objole.Object.Value
End Sub

如果您想直接使用Object,那么您也可以使用它

Sub Sample()
    Dim ws As Worksheet

    Set ws = Worksheets(1)

    MsgBox "Checkbox state is: " & Worksheets(ws.Name).CheckBox1.Value
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM