Sub 财务()
Application.Run "'生产项目进度表.xls'!全部"
ActiveWindow.SmallScroll Down:=-51
Selection.Sort Key1:=Range("K6"), Order1:=xlAscending, Key2:=Range("D6") _
, Order2:=xlAscending, Key3:=Range("B6"), Order3:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
SortMethod:=xlPinYin, DataOption1:=xlSortNormal, DataOption2:= _
xlSortNormal, DataOption3:=xlSortNormal
ActiveWindow.SmallScroll Down:=-72
End Sub
如果你只改了工作簿名,导致出错。那么,录制宏中和工作簿名有关的,就只有第1句的蓝色部分了。
"'生产项目进度表.xls'!全部",是一个字符串,可看做死板的,不灵活的表达方式。特别是在需要修改工作簿名的情况时,无法跟着“自动”变更。解决办法是修改第一句,
Application.Run thisworkbook.name & "!全部"
如2楼所说,acitveworkbook和thisworkbook 都可能是 当前工作簿,所以用它们替代录制宏中 关于工作簿名的字符串中那蓝色部分。