gpt4 book ai didi

vba - 非Variant参数可以变成vbError吗?

转载 作者:行者123 更新时间:2023-12-03 07:46:35 24 4
gpt4 key购买 nike

我正在通过一些vba代码,发现以下片段的等效内容。 If中的条件是否可以为真,如果可以,怎么做?

Public Sub check(param As String)
If VarType(param) = vbError Then
...

如果将 param定义为 Variant怎么办,那么 param如何成为错误?
Public Sub check2(param As Variant)
If VarType(param) = vbError Then
...

根据评论,该声明可以简化为:
If IsError(param) Then

最佳答案

字符串是VarType 8,并且已固定在字符串上,因此第一个示例中的条件永远不会为真。
但是,第二个可能发生。如果您将包含无效值(例如#VALUE)的单元格的值读取到变量中,它将获得VarType 10(vbError)

举个例子:

Sub testVBError()
With ActiveSheet
.Cells(1, 1) = 3
.Cells(1, 2) = 0
.Cells(1, 3).Formula = "=A1/B1" ' Divide by zero
Dim v As Variant
v = .Cells(1, 3).Value
Debug.Print VarType(v)
End With
End Sub

关于vba - 非Variant参数可以变成vbError吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46583450/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com