前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VBA: 单元格区域基于指定列重新排序

VBA: 单元格区域基于指定列重新排序

作者头像
Exploring
发布2022-09-20 14:40:24
1.1K0
发布2022-09-20 14:40:24
举报
文章被收录于专栏:数据处理与编程实践

文章背景:在数据处理时,有时需要根据指定列的内容进行重新排序。比如样品测试时,假设存在5个测试点,其中2号点和3号点无需测,在做报告时,一般会保留2号点和3号点的位置,测试数据为空。针对排序的步骤,可以通过VBA代码实现。

代码实现:在原有测试数据的基础上,根据“品号”列和给定的测试点数目(暂定5个),进行重新排序。

代码语言:javascript
复制
Option Explicit

Sub sample_sort()

    '根据品号列重新排序
    Dim row_ini As Integer, row_test As Integer, number As Integer
    Dim name_sample As String, ii As Integer, flag As Integer
    Dim row_temp As Integer, row_object As Integer
    
    row_ini = 2     '测试数据从第2行开始 (第1行是标题行)
    
    row_test = Cells(Rows.Count, 3).End(xlUp).Row   '测试数据最后一行的行号
    
    number = 5  '测试点数目,包括无需测的测试点。
    
    name_sample = "SAM21-123"  '样品名称
    
    
    '1. 根据“品号”列查找测试数据
    For ii = 1 To number
    
        row_temp = row_test + 1 + ii
    
        Cells(row_temp, 3) = "SAM21-123" & "-" & CStr(ii)  '输入样品单号
        
        Cells(row_temp, 4).Formula = "=IFERROR(MATCH(C" & CStr(row_temp) & ",C:C,0),10000)"   '例:"=IFERROR(MATCH(C6,C:C,0),10000)"
        
        row_object = Cells(row_temp, 4).Value
        
        If Cells(row_temp, 4).Value <= row_test Then
        
            '复制目标行到指定区域
            Rows(row_object).Copy
            Rows(row_temp).Select
            ActiveSheet.Paste
        
        Else
        
            Cells(row_temp, 4).Formula = ""
        
        End If
        
    Next ii
    
    '2. 覆盖原有的测试数据
    Rows(row_test + 2 & ":" & row_test + 2 + number + row_test - row_ini + 1).Copy
    
    Rows(row_ini).Select
    ActiveSheet.Paste
    
    MsgBox "Done!"

    Exit Sub

End Sub

运行效果:http://mpvideo.qpic.cn/0bf2baaasaaatiab4o3vszqvacgdbeeaacia.f10002.mp4?dis_k=9856393c7c46364dcb87efa1d2c4bcef&dis_t=1663655999&vid=wxv_2105061243093942273&format_id=10002&support_redirect=0&mmversion=false

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据处理与编程实践 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档