Excel VBA此活动工作表

时间:2012-10-21 10:41:29

标签: excel excel-vba worksheet vba

我确信这很简单,但我找不到任何相关信息。

我有一个Excel宏,其中包含:

    ActiveWorkbook.Worksheets("Data 21 Oct 12 11-05").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Data21 Oct 12 11-05").Sort.SortFields.Add Key _
    :=Range("W1:W23"), SortOn:=xlSortOnValues, Order:=xlDescending, _
    DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Data 21 Oct 12 11-05").Sort
    .SetRange Range("A1:BZ23")
    .Header = xlGuess
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With

我想要做的是使它成为一个全局宏,但文件名在宏中是硬编码的。如何更改代码以使其引用“this”当前打开的文件?

2 个答案:

答案 0 :(得分:7)

好的,我确定你需要改变它:

ActiveWorkbook.Worksheets("Data 21 Oct 12 11-05").Sort.

为:

ActiveWorkbook.ActiveSheet.Sort

归功于this SO item on creating a button in Excel

答案 1 :(得分:3)

ActiveWorkbook确实引用了当前的打开和活动文件。

如果通过文件名,您可以参考工作表名称是硬编码的事实,您可以通过替换{{1}来使宏使用活动的工作表ActiveWorkbook.Worksheets("Data 21 Oct 12 11-05")