我确信这很简单,但我找不到任何相关信息。
我有一个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”当前打开的文件?
答案 0 :(得分:7)
好的,我确定你需要改变它:
ActiveWorkbook.Worksheets("Data 21 Oct 12 11-05").Sort.
为:
ActiveWorkbook.ActiveSheet.Sort
答案 1 :(得分:3)
ActiveWorkbook
确实引用了当前的打开和活动文件。
如果通过文件名,您可以参考工作表名称是硬编码的事实,您可以通过替换{{1}来使宏使用活动的工作表与ActiveWorkbook.Worksheets("Data 21 Oct 12 11-05")
。