提示:经过VBA 宏操作过的excel数据是不可以Ctrl + z 进行操作撤销的,在进行操作之前一定要备份数据或者复制sheet操作!!!

在平时实验过程中手工录入数据或部分软件导出数据(如紫外分光光度计)均为编号一列,吸光值一列,很多行,由于可能存在多个重复并未给区分开,只有在实验过程中按照顺序记录,因此就需要后期划分同一样本之间的多个重复(生物/技术),如图一;但当数据量较多且指标较多时,此法手工过于劳累,因此可以采用VBA 程式在excel里完成,此程式有具体说明,不懂得VBA编程的也可以根据提示更改以适用。 图一 数据划分样式

二、程序说明

Sub 一列多行数据变为多行多列()
' 宏3 宏
' it表示从哪一行开始,step表示几行分为一列
Dim it As Integer
For it = 2 To 137 Step 4
    Range("B" & it).Select
    Application.CutCopyMode = False
    Selection.Cut
    ActiveSheet.Paste
    Range("B" & it + 1).Select
    Selection.Cut
    Range("C" & it).Select
    ActiveSheet.Paste
    Range("B" & it + 2).Select
    Selection.Cut
    Range("D" & it).Select
    ActiveSheet.Paste
    Range("B" & it + 3).Select
    Selection.Cut
    Range("E" & it).Select
    ActiveSheet.Paste
End Sub
  1. 具体宏的打开与使用可以参考我的启动子那篇文档,复制以上代码,选择你需要运行代码的sheet,根据自己的数据结构及数量更改代码块里的数字,运行即可
  2. 图二表示的是代码块对应的单元格数据的转换方式;黑红颜色表示多列多行之间的转换,无关紧要,图三会有更改步骤。图二 代码块如何工作
  3. 当代码复制进去之后;需要注意的就是图三中点亮的位置;B表示从B列的数据转换,2表示从第二行,那么也就是B2这个单元格开始向下4个单元格数据会被分别剪切 粘贴到C2、D2、E2单元格中,一次循环,Step 4为不长,因为我们已经处理了4个单元格,需要跳过已经处理的四个单元格从第五个开始继续处理,选择步长为4;如果你是10 个数据单元格待处理,不仅需要将4更改为10 还需要在黄色标记的代码块之后按照规律增加更多的单元格剪贴-粘贴代码,参考黄色标记上的代码,只需更改it + 4/5/6/7/。。。和"F/G/H…" & it即可。图三 数据更改步骤

三、 结果展示

实现之后,代码块中并没有多余的功能,因此到此就结束了,仅仅是帮助减少了手动量;切记宏处理过的数据不可撤销;请提前备份或者复制sheet,在复制后的sheet中操作,避免原始数据造成不可恢复的惨状,切记切记。
图四 结果展示

如有疑问欢迎邮件bplizhen@qq.com进行交流探讨,但是我比较懒!😂

提示:经过VBA 宏操作过的excel数据是不可以Ctrl + z 进行操作撤销的,在进行操作之前一定要备份数据或者复制sheet操作!!!一、背景在平时实验过程中手工录入数据或部分软件导出数据(如紫外分光光度计)均为编号一列,吸光值一列,很多行,由于可能存在多个重复并未给区分开,只有在实验过程中按照顺序记录,因此就需要后期划分同一样本之间的多个重复(生物/技术),如图一;但当数据量较多且指标较多时,此法手工过于劳累,因此可以采用VBA 程式在excel里完成,此程式有具体说明,不懂得VBA编程的也可以
工作中我们经常遇到从网页复制出的各种表格到Excel时格式会变化,今天的这个技巧也是我在日常上网时偶然发现的,搬运过来希望日后能用到。 例如需要将这些星期变换成一个七的表格: 首先 在工作表中创建一个如下的表格: 然后用Excel里面的替换,输入如下的参数,点击全部替换: 然后我们就得到了自己想要的如下表格!!! apply_id bigint COMMENT ‘申请id’, oss_key string COMMENT ‘存储在oss上的路径’, type string COMMENT ‘类型,10-身份证数据,20-人脸照,30-运营商,40-魔杖报告,50-补充信息’, SELECT apply_id ,type ,oss_key FROM zizhirisk.ods_t_apply...