sort filed

本文介绍两个使用VBA编写的Excel宏,用于实现自定义的数据排序功能。sort1宏通过创建自定义列表并按升序对指定范围内的数据进行排序;sort2宏则使用自定义列表对数据进行降序排序,并在完成后删除该自定义列表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Option Explicit

Sub sort1()
'
' sort1 宏
'

'
    Dim arr1, str1, i
    
    arr1 = Array("安装地址", "电话号码", "安装套餐", "归属人", "安装日期")
    For Each i In arr1
    str1 = str1 & i & ","
    Next
    str1 = Left(str1, Len(str1) - 1)
    Debug.Print str1
    
    
    Application.DeleteCustomList ListNum:=12
    Application.AddCustomList ListArray:=arr1
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add2 Key:=Range("C3:C7") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
        "安装地址,电话号码,安装套餐,归属人,安装日期", DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Sheet1").Sort
        .SetRange Range("C2:BT7")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
Sub sort2()
'
' sort2 宏
'

'
    Dim strin As Variant, arr, n

    strin = "安装套餐,电话号码,安装地址,归属人,安装日期"
    arr = Array("安装地址", "电话号码", "安装套餐", "归属人", "安装日期")
    Application.AddCustomList ListArray:=arr
    n = Application.GetCustomListNum(arr)
    Debug.Print n

    Range("C2").Select
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add2 Key:=Range("C3:C7") _
        , SortOn:=xlSortOnValues, Order:=xlDescending, CustomOrder:= _
        Application.CustomListCount, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Sheet1").Sort
        .SetRange Range("C2:BT7")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Application.DeleteCustomList n
End Sub
### 处理XML文件的方式 #### DOM解析 DOM(Document Object Model)解析会将整个XML文档加载到内存中并构建一棵树形结构表示文档的内容。这种方式允许随机访问节点,便于修改和查询。然而,由于需要一次性读取全部内容至内存,在处理大型文件时可能会消耗大量资源[^1]。 ```python import xml.dom.minidom as minidom def parse_xml_dom(file_path): doc = minidom.parse(file_path) elements = doc.getElementsByTagName('element_name') for element in elements: print(element.firstChild.data) parse_xml_dom('example.xml') ``` #### SAX解析 SAX(Simple API for XML)采用事件驱动模型来解析XML流。当遇到特定类型的标记时触发相应的回调函数执行相应动作。此方法占用较少内存,并能即时响应数据变化,适合于实时应用以及大体量的数据集处理场景[^2]。 ```python from xml.sax import make_parser, handler class MyHandler(handler.ContentHandler): def startElement(self, name, attrs): pass def characters(self, content): pass parser = make_parser() handler = MyHandler() parser.setContentHandler(handler) parser.parse(open('example.xml')) ``` #### DTD验证 通过定义DTD (Document Type Definition),可以规定XML文档中的合法元素及其层次关系等约束条件。这有助于确保各处使用的相同类型XML遵循一致的标准格式[^4]。 ### 数据与展示分离特性 值得注意的是,相较于HTML专注于网页布局呈现效果而言,XML更多关注信息本身的意义表达而非外观表现形式。因此,利用CSS或者XSLT技术能够实现灵活多变的可视化效果而不影响底层逻辑架构[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值