下面是我的代码的一部分,我在其中声明范围并给它们命名。我的工作簿中有两张纸,#34; ConsoSheet"和"重复"。
我有5个范围要声明,前四个很好。然而最后一个" Data_Temp"给我带来了一些麻烦。我不断收到错误"应用程序定义或对象定义的错误"。
你能明白为什么吗?
Dim DataOut As Range
Dim crit As Range
Dim LengthList As Range
Dim Data As Range
Dim Data_Temp As Range
Set DataOut = Sheets("Duplicated").Range("=Duplicated!$I$1:$O$1")
ActiveWorkbook.Names.Add Name:="DataOut", RefersTo:=DataOut
Set crit = Sheets("Duplicated").Range("=Duplicated!$R$1:$R$2")
ActiveWorkbook.Names.Add Name:="crit", RefersTo:=crit
Set LengthList = Sheets("ConsoSheet").Range("=ConsoSheet!$J$1")
ActiveWorkbook.Names.Add Name:="LengthList", RefersTo:=LengthList
Set Data = Sheets("ConsoSheet").Range("=OFFSET(ConsoSheet!$A$1,0,0,COUNTA(ConsoSheet!$A:$A),7)")
ActiveWorkbook.Names.Add Name:="Data", RefersTo:=Data
Set Data_Temp = Sheets("Duplicated").Range("=OFFSET(Duplicated!$I$1;0;0;COUNTA(Duplicated!$I:$I);7)")
ActiveWorkbook.Names.Add Name:="Data_Temp", RefersTo:=Data_Temp
我尝试更改此特定范围的名称,但问题保持不变。
答案 0 :(得分:0)
这一行:
Set DataOut = Sheets("Duplicated").Range("=Duplicated!$I$1:$O$1")
需要:
Set DataOut = Sheets("Duplicated").Range("I1:O1")
您正在将vba与工作表公式混合使用。
这一行:
Set Data = Sheets("ConsoSheet").Range("=OFFSET(ConsoSheet!$A$1,0,0,COUNTA(ConsoSheet!$A:$A),7)")
到此:
Set Data = Sheets("ConsoSheet").Range(Sheets("ConsoSheet").Range("A1"),Sheets("ConsoSheet").Range("G1").End(xlDown))
您需要更改所有行以解决上述问题。