问题是这样的,我在VBA中测试一个对象的一个属性,这个属性是可写的布尔型。例如设对象名为oObjToTest,要测的属性名是sPropName。我先通过CallByName oObjToTest, sPropName, VbLet, bValue这个语句改变sPropName的值。其中bValue是布尔类型,其值为Non-COM compliant True,就是赋给它一个非零值,而不是赋给它一个True。运行上面的语句后oObjToTest.sPropName=False。然后我又用这个赋值语句:oObjToTest.sPropName=bValue,运行后oObjToTest.sPropName=True。就是说两次赋值结果竟然是不同的!有哪位大虾知道原因吗?不排除这个对象本身有bug的可能性。
解决方案 »
- VSflexgrid 数据转入新 Recordset 中,为水晶报表提供数据源,求代码????
- 請問webhttpRequest 回驗證碼的bmp圖片 透明背景和黑色的區別?
- 求助高手!!!关于网络的一个问题~~~!!!!
- vb可以做发布html页面的程序吧
- 高手们快来:Winsock控件使用时出现Address in use的提示怎么回事?
- 用关server/client数据库访问的实现
- 关于VB中对网络目录的判断和网络文件存取的判断(局域网)?急!在线等待!高分相赠!
- 怎么可以知道和对端IP联接是否正常?
- 关于SetWindowPos使用的问题
- 如何保存或复制Microsoft Outlook面板中的自定义快捷方式?
- 返回什么结果?
- finger finger finger ! ? ! ... $ $
还是自己查查自己的代码吧,CallByName oObjToTest, "sPropName", VbLet, bValue
Dim bBadVal As Boolean
bBadVal = 5
Sub2 oObjToTest, sPropName, bBadVal, "Set to Non-COM compliant True from state True"End SubPrivate Sub Sub2(oObjToTest As Object, sPropName As String, bValue As Boolean, sResultNameToOutput As String)
' Assign the new value
CallByName oObjToTest, sPropName, VbLet, bValue
oObjToTest.sPropName=bValue'这句话没其他用,就是比较两个方法的结果。在watch window里 面观察结果
End Sub这些代码应该可以说明问题了
如果不是CallByName的问题,我想只能是这个oObjToTest对象本身有问题了。
建议你用TextBox和Enabled试一下看看吧