[英]Sharing a macro across multiple worksheets
我创建了一个简单的宏,它可以在不同的工作簿中使用,但前提是 WORKSHEET 具有相同的名称。 在下面的代码中,工作表称为“模板”。 无论工作表的名称如何,我如何才能使这项工作? 这适用于锦标赛中的多个部门; 每个工作表代表一个有几个竞争对手的部门的分数表。 在分组结束时,宏旨在将竞争对手分类为第一名,第二名等。我确信有一个简单的解决方案,但我不是编码员!
Sub SORTSCORE2()
'
' SORTSCORE2 Macro
'
' Keyboard Shortcut: Ctrl+Shift+C
'
ActiveWorkbook.Worksheets("TEMPLATE").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("TEMPLATE").Sort.SortFields.Add2 Key:=Range( _
"B8:B26"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("TEMPLATE").Sort
.SetRange Range("A7:M26")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
如果您想一次运行一张工作表,可以使用ActiveWorkbook.ActiveSheet
或者,您可以使用工作簿中所有工作表的循环
Sub SORTSCORE2()
' Keyboard Shortcut: Ctrl+Shift+C
Dim Sheet as WorkSheet
For Each Sheet in ActiveWorkbook
Sheet.Sort.SortFields.Clear
Sheet.Sort.SortFields.Add2 Key:=Range( _
"B8:B26"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
With Sheet.Sort
.SetRange Range("A7:M26")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Next
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.