隐藏工作簿时的Excel VBAsorting表

嗨,大家好,我正在使用一个sorting代码它工作正常,直到它没有阅读虽然代码和testing后,我发现错误的原因是因为select,据我所知只工作时你可以先select工作表,然后出现我的问题我需要代码来处理隐藏的工作簿任何人都可以帮助获取代码与隐藏的工作簿,因为我只知道这个代码。 谢谢!

这里的代码是在B列之后进行sorting,但是它有第一行作为标题

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 

改变这个:

 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") 

等等。

更多信息:

如何避免在Excel VBA中使用Select

你不需要select

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