有条件的后卫如果不是(x =空)那么
我有以下
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是空的,那么它运作良好,并避免了For Each
循环,但如果myLinks包含一些链接,那么我得到以下错误
运行时错误“13”
If Not (myLinks = Empty) Then
什么问题呢?
LinkSources
返回Empty
或一个数组。
您不能使用相等运算符将数组与Empty
进行比较。
该文档向您显示检查结果的正确方法 – 使用IsEmpty
函数。
无论存储在Variant
中的值types如何,函数都会成功。
如果你在那里Nothing
,你会得到错误91。
或者,如果您有对象引用,那么您的比较将尝试获取存储对象的默认属性 ,并将其与Empty
对比。
这就是为什么你不应该检查= Empty
,只使用IsEmpty
。