2017-03-17 73 views
2

我似乎無法獲得語法更正如下:語法錯誤與命名範圍

表(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 

回答

1

你應該使用:

Set SortRnge = Range(StSrtRnge,NdSrtRnge) 

或與您的語法,你需要:

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

非常感謝,謝謝 –

+0

@ChrisSmith:不客氣!順便說一句,當一個答案解決了你的問題,你應該接受它(灰色滴答下投票)以標記你的問題爲答案! ;) – R3uK

1

範圍預計用逗號或字符串地址分開的兩個細胞。
目前RANGE("A3")Range("EndSrtRnge")可能在不同的工作表上,如果在設置了Range("A3")時出現錯誤的工作表 - 您尚未指定打開的工作表。

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,然後運行之前選擇Sheet2只使用Range("A3")當代碼產生的Application-defined or object-defined error