Excel 笔记

实际问题记录

VBA脚本实现特殊的行转列

已知:位于同一Excel工作簿文件中的两个工作表:Sheet1、Sheet2。

问题:现要将Sheet2中的每一行,按Sheet1中的样子进行转置:

  1. Sheet2中每一行的黄色单元格,为列头。要求以合并3列单元格的方式纵向排列。
  2. Sheet2中每一行黄色单元格之后的3个单元格,分别为一级次列、二级次列和三级次列。要求纵向排列。

答:

vbnet 复制代码
Sub doAction()
    For i = 0 To 12 '处理Sheet2中的每一行
        Sheets("Sheet2").Select
            Range(Cells(i + 2, 2), Cells(i + 2, 2)).Select
            Selection.Copy
        Sheets("Sheet1").Select
            '当i=0时,黄色单元格应置于Sheet1的C3位置;当i=1时,黄色单元格应置于Sheet1的C6位置;当i=2时,黄色单元格应置于Sheet1的C9位置。
            '所以发现规律:i=0, 0*3+3=3; i=1, 1*3+3=6; i=2, 2*3+3=9。
            '所以应将每行的黄色单元格粘贴到Sheet1中的i * 3 + 3位置。
            Cells(i * 3 + 3, 3).Select
            ActiveSheet.Paste
            Range(Cells(i * 3 + 3, 3), Cells(i * 3 + 5, 3)).Merge 
            Range(Cells(i * 3 + 3, 3), Cells(i * 3 + 5, 3)).Interior.ColorIndex = xlNone
            
            For j = 0 To 2 '处理Sheet2中的每一行黄色单元格后的3个单元格
                Sheets("Sheet2").Select
                    Range(Cells(i + 2, j + 3), Cells(i + 2, j + 3)).Select
                    Selection.Copy
                Sheets("Sheet1").Select
                    Cells(i * 3 + 3 + j, 4).Select
                    ActiveSheet.Paste
            Next j
    Next i
End Sub
相关推荐
莫负初1 小时前
Excel使用VBA批量计算指定列的中位数和标准差并筛选指定列数据
数据分析·自动化·excel·vba·方差·标准差
地理探险家13 小时前
各类有关NBA数据统计数据集大合集
数据库·数据集·数据·nba·赛季
杜子腾dd13 小时前
17.Excel:实用的 VBA 自动化程序
数据分析·自动化·excel
是孑然呀20 小时前
【小记】excel vlookup一对多匹配
excel
chaodaibing1 天前
pandas读取pymysql和解析excel的一系列问题(版本不匹配)
excel·pandas
沉到海底去吧Go2 天前
【身份证识别表格】批量识别身份证扫描件或照片保存为Excel表格,怎么大批量将身份证图片转为excel表格?基于WPF和腾讯OCR的识别方案
ocr·wpf·excel·身份证识别表格·批量扫描件身份证转表格·图片识别表格·图片识别excel表格
a GISer doctor2 天前
EXCEL中嵌入其他表格等文件
excel
yngsqq2 天前
CAD属性图框值与Excel联动(CAD块属性导出Excel、excel更新CAD块属性)——CAD c#二次开发
excel
帆张芳显2 天前
前端EXCEL插件,智表ZCELL产品V3.0 版本发布,底层采用canvas全部重构,功能大幅扩展,性能极致提升,满足千万级单元格加载
前端·重构·excel·jquery·插件·智表
課代表2 天前
Excel VBA 词频统计宏
ui·excel··vba·模块·字典