前景提要

好了今天我们来继续玩一下工作表的拆分,之前我们已经尝试了用指定列,指定行的方式来进行工作表的拆分,不知道有没有点燃小伙伴们的拆分热潮呢?之前我在写按照工作表的指定行数进行拆分的时候,就想到一个问题,要是行数不确定,只能按照某个单元格的内存为参照物,如何进行拆分呢?我平时在进行工作表的拆分的时候,时不时也会碰到这样的问题,一般是在月总结的时候会碰到,不知道大家有没有这样的需求,我先分享出来

场景说明

场景说明

这里我们将之前的案例稍微修改一下,更换下场景,这次我们这里放置的是某个班级所有学生历次的考试成绩,不过因为汇总的时候为了方便都是不断的往下新增数据的,并且为了打字方便,姓名都是直接复制的,结果要进行分析的时候,发现这样很难看出来每个学生的成绩变化情况,所以现在我们需要针对总表进行拆分,我们已A1即第一个学生的名字为参照物进行拆分,我们来看看如何实现

代码区

Sub chai()
Dim rng As Range, sth As Worksheet, sthn As Worksheet, pathn$, str$, a As Range
pathn = ActiveWorkbook.Path
Set sth = ActiveSheet
Set rng = Application.InputBox("请选择表头区域", "表头区域的确定", , , , , , 8)
TitleR = rng.Rows.Count
TitleC = rng.Column
TitleColNum = rng.Columns.Count
str = InputBox("请输入参照内容")
l = ActiveSheet.Cells(Rows.Count, TitleR).End(xlUp).Row
CountR = l - TitleR
Set a = Cells(TitleR + 1, TitleC)
For i = TitleR + 2 To lIf Cells(i, TitleC) = str Or i = l Thenk = k + 1Worksheets.Add after:=Worksheets(Worksheets.Count)Set sthn = ActiveSheetrng.Copy sthn.Cells(1, 1)sth.ActivateIf i <> l ThenRange(a, Cells(i - 1, TitleColNum + TitleR - 1)).Copy sthn.Cells(TitleR + 1, 1)ElseRange(a, Cells(i, TitleColNum + TitleR - 1)).Copy sthn.Cells(TitleR + 1, 1)End Ifsthn.Name = "第" & k & "次拆分"Set a = Cells(i, TitleC)End If
Next i
End Sub

来看看代码执行的过程

这已经是套路了。不解释了

输入我们想要的的参照物

然后静候佳音

为了检查方便,我们抽取最后一次的数据来看看

代码分析

来看看今天的代码解析

Set rng = Application.InputBox("请选择表头区域", "表头区域的确定", , , , , , 8)
TitleR = rng.Rows.Count
TitleC = rng.Column
TitleColNum = rng.Columns.Count

常规套路操作,表头数据不规则,我们肯定要获得表头的区域的

str = InputBox("请输入参照内容")

这里就是我们要获得输入的参照物的内容,今天就简单一点,使用inputbox函数来直接实现,相对于inputbox方法,函数的写法要简单多,但是如果有输入内容限制的话,最好还是使用inputbox方法

然后进入我们的循环体

在进入循环之前,我们要先做一件事情

Set a = Cells(TitleR + 1, TitleC)

这一步非常的重要,在我们整个循环体中,a的作用也是非常的大的,他代表的就是我们的参照物A1所在的单元格位置,是不断变化的,但是不管怎变,这个变量所代表的的意义是不变的。

来开始进入循环

我们的循环从A2开始,而不是A1,这里注意这个关键点。

然后进入第一个小循环,不断的往下走,当找到A1的位置之后,我们就有了数据区域,数据区域在哪里呢?


Range(a, Cells(i - 1, TitleColNum + TitleR - 1)).Copy sthn.Cells(TitleR + 1, 1)

结合代码来一起看看,找到A1的位置之后,A1的行数正好就是i的值,但是我们的数据区域不含新的这个A1

所以i-1才是上面的数据的区域的行数,这样答应大家应该能够理解了,后面的获取列数的位置,前面已经说过很多次了,这里容许我稍微偷懒下,略过

然后后面就是循环了,来进入最后一个难点,

就是最后一行的判断,到了最后一行之后,肯定不会再往下循环了,所以也不会在找到一个A1了

这个时候我们既要判断了,如果i=L,,就是总行数的时候,我们就直接将a和最后一行之间的区域放在最后一个工作表中,因为不存在另外一个A1了,所以这里我们要判断是否得到最后一行

这样一来下面代码中的不同,大家就应该能够理解了。

单元格中指定内容标红_按照指定单元格内容进行拆分,想怎么拆就怎么拆相关推荐

  1. 解决idea中maven plugins标红的问题

    解决idea中maven plugins标红的问题 参考文章: (1)解决idea中maven plugins标红的问题 (2)https://www.cnblogs.com/evachen/p/11 ...

  2. 【IDEA】IDEA中出现下划标红问题应该怎样解决(一种简单方法)

    下面以简单的输出"你好"程序为例: 此为正确的程序图: 程序中出现标红错误: 如下为解决步骤: 首先,在标红处单击鼠标右键,出现如下图所示情况后选择第一项Show Context ...

  3. 获取input内容并回填_超详细的软件测试内容实战

    作者:Arnold 链接: 软件测试面试​zhuanlan.zhihu.com 来源:知乎 很多人都拿到了不同的学习软件测试学习路线图,但是却不知道其实软件测试更多的需要实战. 谈到实战,我的发言比较 ...

  4. qt中json构造一个数组_告别撸单元格!我来分享Excel中如何利用一条公式得到一个数组...

    来分享一个Excel中小众的大招."小众的大招"--这么说不矛盾.在Excel表格中利用一条公式来得到一个数组是一个高深且晦涩的话题.多数人不懂什么是数组,所以遇到此类文章或应用实 ...

  5. 如何在EXCEL中查找多个单元格中的多个关键字,多个单元格满足多个条件的行的绿色在线工具

    Excel查找,偶尔有情况遇到要在Excel中查找多个单元格的多个关键字(或包含或相等),或多个单元格或列满足多个的条件的行,Excel本身的支撑没有那么灵活.本身我们又对代码不熟悉,有一个方便性的工 ...

  6. if函数 字体自动标红_发喜糖!REPT函数和图表订婚了~~

    小伙伴们早上好呀!今天为大家分享的是REPT函数的应用实例. 案例1:基础用法 左右:按照给定的次数重复显示文本 用法:REPT(文本,重复次数) 搭配:Wingdings字体家族的应用 案例2:条形 ...

  7. idea lombok安装后还是标红_小辣椒神器Lombok

    咱们Java程序员在开发的时候,有大量简单的POJO类,但是这类写出来大量的getter,setter会导致代码太过冗长,我们总是想,是否有更优雅的方式来解决这个问题,其实一直以来,都有一款神器可以帮 ...

  8. eclipse lombok 标红_无法使Lombok项目在Eclipse上运行

    您不仅必须将lombok.jar添加到库中,而且还可以通过双击lombok jar或从命令行run来安装它java -jar lombok.jar.这将为您显示一个不错的安装程序屏幕.选择您的Ecli ...

  9. idea lombok安装后还是标红_开发效率不高?强烈推荐这十款精选IDEA插件

    作者 | 雷架来源 | 爱笑的架构师(ID:DancingOnYourCode) 头图 |  CSDN 下载自东方IC 俗话说:"工欲善其事必先利其器",小主从项目实战的角度在众多的idea插件中挑选 ...

最新文章

  1. 公司--显示效果,多出来的用...
  2. 两台oracle怎样定期导表数据,定期从Oracle导数据至MySQL
  3. 从LINQ开始之LINQ to Objects(上)
  4. 多通道图像的通道分享和合成函数-split、merge
  5. nginx配置location总结及rewrite规则写法
  6. 2018ACM-ICPC Asia Nanjing Regional Contest
  7. 6.2.2 二叉树的创建
  8. Struts2上传文件的大小设置
  9. 2012021402
  10. Struts2(一)之认识struts2
  11. 可局部放大图片的例子,局部放大图片,javascript局部放大图片
  12. Atlassian发布Bamboo 6.0和Bitbucket Server 5.0
  13. 68.TextView设置中划线、下划线
  14. 基于nao机器人实现语音对话(智能版本)
  15. 京东(保险)部门直推面经
  16. 6个UI面试技巧让你轻松入职大公司
  17. 【3小时学会C语言】横向对比/纵向剖析,轻松学习C语言
  18. 手机触屏特效Java_手机触屏触摸特效javascript-TouchSwipe(依赖于jquery库)中文说明...
  19. LLVM IR转CFG
  20. 计算机驱动安装的几个方法,不会安装驱动有福了,2个方法教你安装驱动程序,非常实用的知识...

热门文章

  1. Leetcode-Maximum Subarray
  2. C# 采用线程重绘图形要点记录
  3. 生成 linq to sharepoint 对象模型sharepoint 母板页
  4. IEnumerable接口
  5. double 乘法_老大说:谁要再用double定义商品金额,就自己收拾东西走 | 文末福利...
  6. php mysql查询出来二叉树的数据_tp框架怎么实现二叉树查询 如图,查询数据库中小明下面的所有人。到底下面多少人,不清楚。 代码如何实现...
  7. Linux编程 文件操作,linux高级编程(文件操作)
  8. java sha1hash 算法_javaweb使用sha1算法登录加密的整个过程
  9. java 局部变量空间 大小_变量作用域-1:局部变量 和成员变量、各种变量内存分配的大小...
  10. python中json使用方法总结_python中的json总结