2017-10-06 123 views
0

嗨,大家好我正在使用它的工作正常的排序代码,直到它没有经过一段时间的阅读,虽然代码和测试我发现错误的原因是因为选择,据我所知只工作时,你可以选择工作表首先带有一个可见的工作表,这里出现我的问题我需要代码与隐藏工作簿一起工作,任何人都可以帮助获得代码与隐藏工作簿,因为我只知道这个代码。谢谢!Excel VBA隐藏工作簿时的排序工作表

什么这里的代码没有为B柱之后的排序,但它有第1排的头部

Set tsheet = ThisWorkbook.Sheets("Courses_tee") 

    ThisWorkbook.Sheets("Courses_tee").Range("B2").CurrentRegion.Select 
    Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlGuess, _ 
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ 
    DataOption1:=xlSortNormal 
+2

有没有听说过标点符号? – Aganju

+0

嗯,我很抱歉阿甘居,我不是英语,并没有任何线索把他们放在哪里。它一定是如此难以阅读它 –

回答

2

更改此:

ThisWorkbook.Sheets("Courses_tee").Range("B2").CurrentRegion.Select 
Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlGuess, _ 
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ 
    DataOption1:=xlSortNormal 

对此:

Set tsheet = ThisWorkbook.Sheets("Courses_tee") 
tSheet.Range("B2").CurrentRegion.Sort Key1:=Range("B2"), _ 
    Order1:=xlAscending, Header:=xlGuess, _ 
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ 
    DataOption1:=xlSortNormal 

你不需要和你不应该SelectActivate你可以直接在对象上操作的东西。 SelectActivate本质上是一样的击键/鼠标点击/用户行为 - 你不需要Select代码中的一个范围,如果你知道这是什么范围,即:

Range("A1:A100").Select 
Selection.Copy Destination:=Range("B1") 

可以成为简单:

Range("A1:A100").Copy Destination:=Range("B1") 

等等

更多信息:

How to avoid using Select in Excel VBA

+0

嗨大卫感谢您的代码和解释。非常感谢。 –

0

你并不需要选择

tSheet.Range("B2").CurrentRegion.Select 
Selection.Sort Key1:=tSheet.Range("B2"), Order1:=xlAscending, Header:=xlGuess, _ 
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ 
DataOption1:=xlSortNormal