命名范围的语法错误

我似乎无法得到如下语法更正:

工作表(DCRLog)在AE365有一个名为EndSrtRnge的命名范围

我正在尝试将电子表格从A3分类到AE365

Dim StSrtRnge As Range Set StSrtRnge = Range("A3") Dim NdSrtRnge As Range Set NdSrtRnge = Range("EndSrtRnge") Dim SortRnge As Range Set SortRnge = Range(StSrtRnge:NdSrtRnge)*********Syntax Error 

最后使用的声明是

 SortRnge.Sort Key1:=SortKey, Order1:=xlAscending, Header:=xlYes 

你应该使用:

 Set SortRnge = Range(StSrtRnge,NdSrtRnge) 

或者用你的语法,你需要:

 Set SortRnge = Range(StSrtRnge.Address & ":" & NdSrtRnge.Address) 

范围期望两个单元格由逗号或string地址分隔。
如果当设置Range("A3")时出现错误的纸张,则当前RANGE("A3")Range("EndSrtRnge")可能位于不同的纸张上 – 您尚未指定打开的纸张。

 Sub Test() Dim NdSrtRnge As Range Set NdSrtRnge = Range("EndSrtRnge") Dim StSrtRnge As Range 'Ensure the start range is on the same sheet as the named range. 'Using just RANGE will place it on the currently active sheet. Set StSrtRnge = NdSrtRnge.Parent.Range("A3") Dim SortRnge As Range Set SortRnge = NdSrtRnge.Parent.Range(StSrtRnge, NdSrtRnge) End Sub 

只需重复选中 – 在Sheet1上设置EndSrtRnge ,然后在运行代码之前selectSheet2 ,在使用Range("A3")时会生成Application-defined or object-defined error