vba运算符!
和.
之间的确切区别是什么?
我注意到它们通常可以互换使用,但有时一个可以使用,一个不可用(例如Access中的Forms-Collection)。
此外,当您意外地使用!optSomething
子句写Not optSomething
(某些选项)而不是with
时,它不会在编译时中断,而是在运行时,因为!
使用了 - 我的公司在On Error Resume Next
之后有一些破坏的vba,我只是意识到激活了“制造每个错误”。
答案 0 :(得分:1)
!
字符无形地调用该对象的默认成员。
对于Recordset,默认成员是Fields方法,字段对象的默认成员是Value属性,因此这些行是相同的:
sEmp = rst.Fields("emp_id")
sEmp = rst.Fields("emp_id").Value
sEmp = rst!emp_id
因此,您认为它适用于某些对象而非其他对象的原因可能是因为这些对象没有您期望的默认成员。