- [返回列表] [ 发布:2014/12/29 19:00:23 ] [ 浏览: ] [ 字体:大 | 小 ]
- 通用Excel明细表中,实现每一列独立排序(升序和降序)
为了方便填报者更直观的查阅繁多的明细表数据,在模版制作的时候,经常会对结果数据进行排序。但是单纯的Excel排序功能在数据应用上存在极大地不方便,这里互和科技介绍一重更为人性化的排序效果,以供参考。
如图,这样一张表,要实现每一列都可以进行独立排序操作:
1.首先为明细表字段抬头设置排序标识;
可以通过控件中插入该标识。
2.利用通用Excel表间取数公式,设置排序;
如上图所示,在设置公式的时候,数据源无需选择、筛选条件无需设置、填充的时候,直接将本报表所有字段填充到本表字段即可。
注:根据实际情况,表单每一个字段需要设置一条升序和一条降序的表间取数公式,分别勾选升序和降序,并设置排序字段,如图3所示;
3.设置VBA;
点击每一个排序标识,然后打开VBA设置界面,输入以下代码:
Private Sub Label1_Click()
On Error Resume Next
Application.ScreenUpdating = False
Dim obj As Object
'获取通用Excel的编程接口
Set obj = Application.COMAddIns.Item("prjAddin.Office_Addin").Object
'通过接口调用执行动作
If Label1.Caption = "↑" Then
obj.execFormula "降序(序号)"
Label1.Caption = "↓"
Label2.Caption = "↑"
Label3.Caption = "↑"
Label4.Caption = "↑"
Label5.Caption = "↑"
Label6.Caption = "↑"
Label7.Caption = "↑"
Else
obj.execFormula "升序(序号)"
Label1.Caption = "↑"
Label2.Caption = "↑"
Label3.Caption = "↑"
Label4.Caption = "↑"
Label5.Caption = "↑"
Label6.Caption = "↑"
Label7.Caption = "↑"
End If
'释放编程接口
Set obj = Nothing
Application.ScreenUpdating = True
End Sub
代码中,Label7 部分,就是排序标识;
根据排序标识的个数,对应需要设置相同的工程数量,并且要修改对应的排序识别状态:
完成上述设置后,即可看到最终想要的效果:
联系人,降序
联系人,升序
以上由互和科技原创,转载请注明来源。