6

我敢肯定这真的很容易,但我找不到任何信息。

我有一个 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”当前打开的文件?

4

2 回答 2

9

好的,我发现您需要将其更改为:

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

到:

ActiveWorkbook.ActiveSheet.Sort

在 Excel 中创建按钮时归功于此 SO项目

于 2012-10-21T11:05:04.520 回答
4

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

如果通过文件名您指的是工作表名称是硬编码的事实,则可以通过替换为来使宏与活动工作ActiveWorkbook.Worksheets("Data 21 Oct 12 11-05")一起使用ActiveSheet

于 2012-10-21T11:04:44.900 回答