IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Excel VBA多行连续数据分类合并 -> 正文阅读

[人工智能]Excel VBA多行连续数据分类合并

Excel VBA多行连续数据分类合并

1. 案例说明:

需要将如下数据
原表格

合并为以下形式,并且新建一个工作表展示出来:

合并后的表格

2. 实现代码:

打开EXCEL的VBA环境,将以下代码复制粘贴到新的模块中,运行"多行合并"这个Sub即可

Option Explicit

Private Function SheetExists(sname) As Boolean
'   Returns TRUE if sheet exists in the active workbook
    Dim x As Object
    On Error Resume Next
    Set x = ActiveWorkbook.Sheets(sname)
    If Err = 0 Then SheetExists = True _
        Else SheetExists = False
End Function
 

Sub 多行合并()
    Dim new_sht As Worksheet
    Dim source_sht As Worksheet
    Dim last_row As Long
    Dim last_column As Long
    Dim temp_rng As Range
    Dim write_rng As Range
    Dim cur_row As Long
    
    
    Set source_sht = ActiveSheet
    If Not SheetExists("合并后的表") Then
        Set new_sht = Worksheets.Add(after:=Worksheets(Worksheets.Count))
    
        new_sht.Name = "合并后的表"
        new_sht.UsedRange.Clear
    Else
        Set new_sht = Worksheets("合并后的表")
    End If
    ' 把原表激活
    source_sht.Activate
    last_row = source_sht.Cells(Rows.Count, 1).End(xlUp).Row
    Set write_rng = new_sht.[a1]
    
    For cur_row = 1 To last_row
        If cur_row = 1 Then
            last_column = source_sht.[a1].End(xlToRight).Column
            Set temp_rng = source_sht.Range(Range("a1"), Cells(1, last_column))
            new_sht.[a1].Resize(1, temp_rng.Count) = temp_rng.Value
            Set write_rng = new_sht.[a1].End(xlToRight).Offset(0, 1)
        Else
            If source_sht.Cells(cur_row, "a").Value = source_sht.Cells(cur_row - 1, "a").Value Then
                last_column = source_sht.Cells(cur_row, "a").End(xlToRight).Column
                Set temp_rng = source_sht.Range(Cells(cur_row, "b"), Cells(cur_row, last_column))
                write_rng.Resize(1, temp_rng.Count) = temp_rng.Value
    
                Set write_rng = write_rng.End(xlToRight).Offset(0, 1)
            Else
                last_column = source_sht.Cells(cur_row, "a").End(xlToRight).Column
                Set temp_rng = source_sht.Range(Cells(cur_row, "a"), Cells(cur_row, last_column))
                new_sht.Cells(write_rng.Row + 1, "a").Resize(1, temp_rng.Count) = temp_rng.Value
                last_column = source_sht.Cells(cur_row, "a").End(xlToRight).Column
                Set write_rng = new_sht.Cells(write_rng.Row + 1, "a").End(xlToRight).Offset(0, 1)
            End If
        
        End If
    
    Next cur_row
End Sub

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-01-14 01:58:30  更:2022-01-14 02:01:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 22:03:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码