运行时错误“1004”:object'_Global的方法'Range'失败

我有一个与Excel的问题,与生成引用号的表单。 但是当我尝试生成参考号。 它有一个错误消息说:

运行时错误“1004”:object'_Global的方法'Range'失败

当我点击debuggingbutton,它显示代码如下:

它突出了代码的第四行上的错误

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是一个variables,它包含对范围的引用,可能是一个命名的范围。 如果查看指定范围的RefersTo属性,则可能会指向执行代码时除Activesheet之外的工作表。

解决这个问题的最好方法是通过指定表来避免不合格的Range引用。 喜欢

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

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