Excel VB这个活动的工作表

我确定这很容易,但是我找不到任何信息。

我有一个Excelmacros,有这样的事情:

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 

我想要做的是使这是一个全局macros,但文件名是硬编码的macros。 如何更改代码,以便引用“this”当前打开的文件?

好吧,我找出你需要改变它:

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

至:

 ActiveWorkbook.ActiveSheet.Sort 

感谢这个在Excel中创buildbutton的SO项目

ActiveWorkbook确实参考当前打开和活动的文件。

如果通过文件名引用表名是硬编码的事实,则可以使用ActiveSheetreplaceActiveWorkbook.Worksheets("Data 21 Oct 12 11-05") ,使macros可以与活动工作表一起工作。