Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.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
Excel 运行时错误';1004';:方法';范围';对象的'_全球';失败_Excel_Vba - Fatal编程技术网

Excel 运行时错误';1004';:方法';范围';对象的'_全球';失败

Excel 运行时错误';1004';:方法';范围';对象的'_全球';失败,excel,vba,Excel,Vba,我在excel中遇到问题,表格生成了一个参考编号。但是当我尝试生成参考编号时,它会显示一条错误消息: 运行时错误“1004”:对象“U全局”的方法“范围”失败 当我单击Debug按钮时,它显示如下代码: 它突出显示了代码第4行的错误 Sub clearTemplate() ' Clear Template Content Range(inputTemplateHeader) = NO_ENTRY Range(inputTemplateContent) = NO_ENTRY

我在excel中遇到问题,表格生成了一个参考编号。但是当我尝试生成参考编号时,它会显示一条错误消息:

运行时错误“1004”:对象“U全局”的方法“范围”失败

当我单击Debug按钮时,它显示如下代码:

它突出显示了代码第4行的错误

Sub clearTemplate()
    ' Clear Template Content
    Range(inputTemplateHeader) = NO_ENTRY
    Range(inputTemplateContent) = NO_ENTRY     - (highlighted error)
End Sub

Sub clearRefNo()
    ' Clear cell G2 reference number
    Range(cellRefNo) = NO_ENTRY

    ' Open "Report_ref_no.xls"
    If Not (IsFileOpen) Then Workbooks.Open filename:=ThisWorkbook.Path & "\" & FACCESS

    ' Activate "Report_ref_no.xls"
    Windows(FACCESS).Activate

    ' Access column D
    Range(cellFirstRefNo).Select
    Selection.End(xlDown).Select

    If refNo = Cells(ActiveCell.Row, ActiveCell.Column - 1).Value Then
        ' Log Development Code column
        Cells(ActiveCell.Row, ActiveCell.Column) = NO_ENTRY

        ' Log Issuer column
        Cells(ActiveCell.Row, ActiveCell.Column + 1).Value = NO_ENTRY

        ' Log Date column
        Cells(ActiveCell.Row, ActiveCell.Column + 2).Value = NO_ENTRY
    End If

    ' Save & Close workbook
    ActiveWindow.Close True
End Sub

有人能帮我解决这个问题吗?我不知道出了什么问题?

当您这样引用范围时,它被称为非限定引用,因为您没有明确说明范围在哪一页上。非限定引用由“_Global”对象处理,该对象确定引用的对象,这取决于代码所在的位置

如果您在标准模块中,则不合格范围将引用Activesheet。如果您在工作表的类模块中,则“不合格范围”将引用该工作表

inputTemplateContent是一个变量,包含对某个范围(可能是命名范围)的引用。如果查看该命名范围的referesto属性,它很可能在代码执行时指向除Activesheet之外的工作表

解决此问题的最佳方法是通过指定图纸来避免不合格的范围引用。像

With ThisWorkbook.Worksheets("Template")
    .Range(inputTemplateHeader).Value = NO_ENTRY
    .Range(inputTemplateContent).Value = NO_ENTRY
End With

调整工作簿和工作表参考以适合您的特定情况。

当您收到错误时,
inputTemplateContent
NO\u ENTRY
的值是多少?它是否适用于
设置范围(inputTemplateContent)=NO_ENTRY
?以防任何人有相同的问题:如果使用范围指定书本和工作表并以此错误结束,则check book的名称没有空格(可能很明显,但如果您有遗留宏且从未使用VBA for Excel,这可能会很棘手)。