隐藏工作簿时的Excel VBA排序表

时间:2017-10-06 12:52:05

标签: excel vba 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 个答案:

答案 0 :(得分:2)

改变这个:

local scenario = love.filesystem.load(script)
local env = {}
setmetatable(env, { __index = _G })
env.love = nil
env.game = Game
setfenv(scenario, env)

对此:

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 SelectActivateSelect基本上模仿击键/鼠标点击/用户操作 - 如果您知道该范围,则不需要Activate代码中的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

答案 1 :(得分:0)

您不需要选择

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