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
相关推荐
徐赛俊11 小时前
Excel 打开后界面一片灰、无工作表的原因与解决方案(Markdown 教程)
excel
gis分享者12 小时前
Shell 脚本中如何使用 trap 命令捕捉和处理信号(中等)
shell·脚本·信号·处理·trap·捕捉
課代表12 小时前
bat 批处理中 FOR 命令的变量修饰符
脚本·bat·环境变量·批处理·路径·扩展名·短名称
hacker70712 小时前
精进Excel图表:AI赋能,成为Excel图表高手
人工智能·信息可视化·excel
Data-Miner13 小时前
结合AI Agent的excel大数据处理技巧
人工智能·excel
如意机反光镜裸13 小时前
批量处理Excel数据
excel·批量处理
dyxal13 小时前
Excel情感标注工具性能优化实战:从卡顿到流畅的蜕变
网络·性能优化·excel
Non-existent98714 小时前
Excel/CSV转GIS:一键WKT转gdf、Shapefile等图层
信息可视化·excel
dyxal15 小时前
Excel情感标注工具:用Python+Flask打造高效数据标注平台
python·flask·excel
开开心心就好16 小时前
音频格式互转工具,支持Mp3ApeWavFlac互转
java·网络·c++·windows·qt·电脑·excel