作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
(警告:虽然它乍一看可能是一个问题,但这是 而不是 一个初学者级别的问题。如果您熟悉“让强制”这个短语或者您曾经查看过 VBA 规范,请继续阅读。)
假设我有一个 Variant
类型的表达式,我想将它分配给一个变量。听起来很容易,对吧?
Dim v As Variant
v = SomeMethod() ' SomeMethod has return type Variant
SomeMethod
返回一个 Object(即 VarType 为 vbObject 的 Variant),
Let coercion开始和
v
包含对象的“简单数据值”。换句话说,如果 SomeMethod 返回一个对 TextBox 的引用,
v
将包含一个字符串。
Set
:
Dim v As Variant
Set v = SomeMethod()
SomeMethod
不返回对象,例如一个字符串,产生类型不匹配错误。
Dim v As Variant
If IsObject(SomeMethod()) Then
Set v = SomeMethod()
Else
v = SomeMethod()
End If
SomeMethod
的不幸副作用两次。
SomeMethod
的解决方案?两次?
最佳答案
Dim v As Variant
For Each v In Array(SomeMethod())
Exit For 'Needed for v to retain it's value
Next v
'Use v here - v is now holding a value or a reference
关于vba - 如何在 VBA 中将 Variant 分配给 Variant?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35750449/
我是一名优秀的程序员,十分优秀!