Vba 条件保护如果不是(x=空),则
我有以下几点Vba 条件保护如果不是(x=空),则,vba,excel,Vba,Excel,我有以下几点 Public Sub BreakAllLinks(ByRef aWkBook As Excel.Workbook) Dim Link As Variant Dim myLinks As Variant myLinks = aWkBook.LinkSources(Type:=Excel.xlLinkTypeExcelLinks) If Not (myLinks = Empty) Then For Each Link In myLinks aWkBook.Br
Public Sub BreakAllLinks(ByRef aWkBook As Excel.Workbook)
Dim Link As Variant
Dim myLinks As Variant
myLinks = aWkBook.LinkSources(Type:=Excel.xlLinkTypeExcelLinks)
If Not (myLinks = Empty) Then
For Each Link In myLinks
aWkBook.BreakLink Name:=Link, Type:=Excel.xlLinkTypeExcelLinks
Next Link
End If
End Sub 'BreakAllLinks
如果myLinks是空的,那么它工作得很好,并且避免了每个循环的,但是如果myLinks包含一些链接,那么我会得到以下错误
运行时错误“13”
有什么问题?如果没有(myLinks=Empty),则返回空或数组
不能使用相等运算符将数组与空
进行比较
显示检查结果的正确方法-使用IsEmpty
函数
无论变量中存储的值类型如何,函数都会成功
例如,如果您的中没有任何内容
,则会出现错误91。
或者,如果您在其中有一个对象引用,您的比较将尝试获取存储对象的名称,并将其与Empty
进行比较
这就是为什么您不应该真正检查=Empty
,而只使用IsEmpty
LinkSources
返回Empty
或数组
不能使用相等运算符将数组与空
进行比较
显示检查结果的正确方法-使用IsEmpty
函数
无论变量中存储的值类型如何,函数都会成功
例如,如果您的中没有任何内容
,则会出现错误91。
或者,如果您在其中有一个对象引用,您的比较将尝试获取存储对象的名称,并将其与Empty
进行比较
这就是为什么你永远不应该检查=Empty
,而只使用IsEmpty