Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba Excel样式。缩进级别->;运行时错误94:无效使用Null 描述_Vba_Excel - Fatal编程技术网

Vba Excel样式。缩进级别->;运行时错误94:无效使用Null 描述

Vba Excel样式。缩进级别->;运行时错误94:无效使用Null 描述,vba,excel,Vba,Excel,检查样式的未初始化.IndentLevel会引发运行时错误94:无效使用Null 如果此工作簿为.Styles(1).IndentLevel,则 检查样式的未初始化.IndentLevel是否为Null或iError也会引发运行时错误94:无效使用Null 如果为空(ThisWorkbook.Styles(1.IndentLevel)),则 如果IsError(ThisWorkbook.Styles(1.IndentLevel))则 变通 出错时继续下一步 调用IsNull(ThisWorkb

检查样式的未初始化
.IndentLevel
会引发运行时错误94:无效使用Null

如果此工作簿为.Styles(1).IndentLevel,则

检查样式
的未初始化
.IndentLevel
是否为Null
iError
也会引发运行时错误94:无效使用Null

如果为空(ThisWorkbook.Styles(1.IndentLevel)),则 如果IsError(ThisWorkbook.Styles(1.IndentLevel))则

变通
出错时继续下一步
调用IsNull(ThisWorkbook.Styles(1.IndentLevel)
如果错误号为0,则
如果结束
错误转到0
测试代码
Sub TestIndent()
使用ThisWorkbook.Styles.Add(“测试-缩进级别”)
出错时继续下一步
Debug.Print.IndentLevel
如果错误号为0,则调试打印“错误-.IndentLevel:”。错误号,错误描述
呃,明白了
Debug.Print为空(.IndentLevel)
如果错误号为0,则Debug.Print“Error-IsNull(.IndentLevel):”;错误号,错误描述
错误转到0
.level=1
调试。打印“无错误-.IndentLevel:;”。缩进水平
打印“无错误-IsNull(.IndentLevel)”;IsNull(.IndentLevel)
.删除
以
端接头
实际问题
这是
Style.IndentLevel
属性本身内部未处理的
无效使用Null
错误吗?

如果首先将
Style
对象指定给变量,声明为
Variant
object
,然后将引用所访问的变量的
.IndentLevel
属性指定给该变量,则该错误有效。如果变量声明为
Style
,则会发生相同的错误。这似乎是接口实现的风格。
On Error Resume Next

Call IsNull(ThisWorkbook.Styles(1).IndentLevel)

If Err.Number <> 0 Then

End If

On Error GoTo 0
Sub TestIndent()
    With ThisWorkbook.Styles.Add("Test - IndentLevel")
        On Error Resume Next
        Debug.Print .IndentLevel
        If Err.Number <> 0 Then Debug.Print "Error - .IndentLevel:"; .Err.Number, Err.Description
        Err.Clear

        Debug.Print IsNull(.IndentLevel)
        If Err.Number <> 0 Then Debug.Print "Error - IsNull(.IndentLevel):"; Err.Number, Err.Description
        On Error GoTo 0

        .IndentLevel = 1

        Debug.Print "No Error - .IndentLevel:"; .IndentLevel
        Debug.Print "No Error - IsNull(.IndentLevel)"; IsNull(.IndentLevel)

        .Delete
    End With

End Sub