|
yjwdjfqb 发表于 2012-2-7 00:10
在一个文件中,有二个工作表,其表头不在固定,我想在一个表中就用一个宏命令
Sub 科室排序()
Dim arr, i&, c, r, x
'设置自定义排序的顺序
arr = Array("外妇科", "手术室", "内儿科", "西医科", "中医科", "耳鼻喉科", "放射科", "检验科", "B超室", "口腔科", "针灸科", "西药房", "中药房", "收费室", "疾控科", "合管办", "后勤科")
With Application
.ScreenUpdating = False
.AddCustomList ListArray:=arr
i = .GetCustomListNum(arr) '返回字符串数组的自定义序列号
Select Case acitvesheet.Name
Case "实例1"
x = 1 '手工确定工作表“实例1”的行号
Case "实例2"
x = 2 '手工确定工作表“实例2”的行号
Case Else
End
End Select
c = Cells(x, "iv").End(xlToLeft).Column '数据源最右侧列号
r = Cells(65536, ActiveCell.Column).End(xlUp).Row '所选单元格所在列最后一个数据的行号
'排序区域
With Range(Cells(ActiveCell.Row, 1), Cells(r, c))
'设置排序的起始单元格
.Sort key1:=ActiveCell, order1:=xlAscending, _
Header:=xlNo, OrderCustom:=i + 1
End With
.DeleteCustomList ListNum:=i
.ScreenUpdating = True
MsgBox "排序完成", vbInformation
End With
End Sub
加个判断,自行确定好具体行号。
|
|