无法从DatePicker获取值
我有一个工作表上的DatePicker控件。 当我在工作表的embedded代码中,我可以访问该控件的值,如下所示:
Public Sub showValue() Debug.Print Me.DTPicker21.value End Sub
我想从模块中获得价值。 代码在这里:
Sub getDate() Dim obj As Object Dim sht As Worksheet Set sht = ThisWorkbook.Sheets("Tool interface") For Each obj In sht.OLEObjects If obj.Name = "DTPicker21" Then Debug.Print obj.value End If Next End Sub
当我运行这个, obj.value
触发这个错误:
Object doesn't support this property or method
我使用这个过程检查了obj
的属性列表,并没有value
属性。 我怎样才能得到在DatePicker中设置的date值?
我不知道所有的细节,但是一些OLEObjects
需要你先访问它们的Object
属性,然后才能访问其他的属性。 我认为OLEObject作为一个容器,然后“子对象”是你想要与之交互的实际对象。 例如,如果运行以下两行代码,则会看到第一个返回OleObject
,第二个返回DTPicker
:
Debug.Print "Obj: " & TypeName(obj) Debug.Print "Obj.Object: " & TypeName(obj.Object)
在你的情况下,尝试下面的代码更改以消除错误(请注意debugging行):
Sub getDate() Dim obj As Object Dim sht As Worksheet Set sht = ThisWorkbook.Sheets("Tool interface") For Each obj In sht.OLEObjects If obj.Name = "DTPicker21" Then Debug.Print obj.Object.Value End If Next End Sub