我在 Excel 中有一个这样的会员列表
| A | 02-02-1994 | B | C
| D | 04-10-1998 | E | F
我想改变它,以便它可以按年龄(第二列)或按姓名(第一列)排序
如您所见,年龄是通过日期以及定义的变量(隐藏在另一列中)设置的。我需要计算年龄,
这不是问题
问题是我如何让用户决定是否要按姓名或年龄排序(如数据透视表)
我正在使用 Excel 2003
现在我正在创建一个 HTML 页面,这样你就能明白我的意思,如果你从问题中看不出来
更新
此页面上有一个例子http://www.the87boy.dk/membershiplist.php
答案1
插入一列(稍后不排序,因此按钮保留原位)并在其中插入几个分配了宏的按钮表单控件。假设 A 和 D 位于 Sheet1 的 ColumnB 中且没有间隙,例如:
Sub Macro1()
Columns("B:E").Select
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("B:B"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SetRange Range("B:E")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
或者自己录制。
我将该按钮命名为“名称顺序”,将另一个按钮(用 C:C 代替 B:B)命名为“年龄顺序”。