我在使用Excel时遇到了一个问题,一个生成参考编号的表单。但当我尝试生成参考编号时,出现了一条错误消息:
运行时错误“1004”:对象“_Global”的方法“Range”失败
当我点击调试按钮,它显示的代码如下:
它突出显示代码第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
有人能帮我解决这个问题吗?我不知道出了什么问题?
1条答案
按热度按时间wwodge7n1#
当您像这样引用Range时,它被称为非限定引用,因为您没有明确说明该区域位于哪个工作表上。非限定引用由“_Global”对象处理,该对象确定您引用的对象,并取决于您的代码所在的位置。
如果在标准模块中,非限定Range将引用Activesheet。如果在工作表的类模块中,非限定Range将引用该工作表。
inputTemplateContent是一个变量,它包含对某个范围(可能是一个命名范围)的引用。如果查看该命名范围的RefersTo属性,则在代码执行时,它可能指向Activesheet以外的工作表。
解决这个问题的最好方法是通过指定工作表来避免非限定的Range引用。
调整工作簿和工作表引用以适合您的特定情况。