Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
12
返回列表 发新帖
楼主: 胖子22

[已解决]各位大虾,帮帮忙,该表约有1500行,得先找出需剪切的,最后将空行清理掉

[复制链接]
发表于 2012-11-5 22:43 | 显示全部楼层
胖子22 发表于 2012-11-5 21:47
我疏忽了,重新修订了表样,其实就是把两行最多四行的内容接成一行,前几列是空值的接到上一行的后面,抱 ...

sheet1表中S17单元格中的 数据“12345” 到sheet2表怎么就没有了呢??
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

发表于 2012-11-5 23:29 | 显示全部楼层    本楼为最佳答案   
研究了半天算是搞懂了,中间的剪切 位置有可能与你想的不一样,因为没有更多相关数据,所以就只有根据附件来判断了
如果是插入固定的列数 则修改 L = L + .Range(.Cells(X, "I"), .Cells(X, Lx)).Columns.Count
比如固定插入10列,则 L=L+10

其它的代码都有说明,你自己慢慢研究下,应该能自己修改!

  1. Sub 调整()
  2. Dim Arr(), Hx As Long, X As Long, Ma As Integer, Lx As Integer
  3. Dim L As Integer, H As Long
  4.   Application.ScreenUpdating = False  '关闭屏幕更新
  5.   With Sheets("Sheet1")   '指定要操作的表
  6.     Hx = .Range("I65536").End(xlUp).Row   '提取 I 列使用到的最后一行的行号
  7.     With .Range("T1:V" & Hx)    '指定操作 T,V 列
  8.       Arr = .Value    '将值放到数组
  9.       .ClearContents  '清除单元格中的值
  10.     End With
  11.     L = 19    '要插入数据的初始列数 19 列则是 S 列
  12.     For X = Hx To 1 Step -1   '倒循环
  13.       If Len(.Cells(X, "H")) = 0 Then   '如果 H 列中没有值,就执行下面的代码
  14.         Lx = .Cells(X, "IV").End(xlToLeft).Column   '提取该行使用到的最一列的列号
  15.         H = .Cells(X, "H").End(xlUp).Row    '提取该行往上 有数据行 的行号
  16.         
  17.         .Range(.Cells(X, "I"), .Cells(X, Lx)).Cut .Cells(H, L)
  18.         '将数据区域 剪切 到 单元格(h行,l列)
  19.         
  20.         L = L + .Range(.Cells(X, "I"), .Cells(X, Lx)).Columns.Count
  21.         '计算下一个数据要剪切到的 列 号,
  22.       Else
  23.         If L > Ma Then Ma = L   '记录使用的最大的列号
  24.         L = 19    '初始 列号
  25.       End If
  26.     Next
  27.     .Cells(1, Ma).Resize(UBound(Arr), UBound(Arr, 2)) = Arr   '将原 T:V 列的数据重新写回新的单元格位置
  28.     .Columns("G:G").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
  29.     '使用 定位》空值 功能,整行删除 G:G 列中有空值的行
  30.   End With
  31.   Application.ScreenUpdating = True  '打开屏幕更新
  32. End Sub
复制代码
回复

使用道具 举报

发表于 2012-11-6 07:48 | 显示全部楼层
胖子22 发表于 2012-11-4 21:55
看来问题我没描述清楚,重新描述如下:1、需查找出前8列为空的行查找出来;2将前8行为空的行中有效数据复制 ...

你既然知道处理出来的结果少了数据,为啥不指出来那些地方少了那些数据呢??

只说似乎少了不少数据,叫我慢慢去查那里少了那些数据啊??

这是你的专业,你才是最清楚的吧??别把求助贴弄成像“考试”贴一 样的,还不告诉别人怎么去“解”!!
回复

使用道具 举报

 楼主| 发表于 2012-11-6 08:59 | 显示全部楼层
无聊的疯子 发表于 2012-11-6 07:48
你既然知道处理出来的结果少了数据,为啥不指出来那些地方少了那些数据呢??

只说似乎少了不少数据, ...

对不起,是我错了,我在家里的机器调试宏缺数据,但在单位的机器上又没事了,实在不好意思,我再试着弄一下。
对了老师,还有个问题,我想将两个表的指定单元格的数据进行比较,如果有差异用颜色或其他方式标出来,该怎么做
回复

使用道具 举报

发表于 2012-11-6 09:07 | 显示全部楼层
胖子22 发表于 2012-11-6 08:59
对不起,是我错了,我在家里的机器调试宏缺数据,但在单位的机器上又没事了,实在不好意思,我再试着弄一 ...

具体情况具体分析,你说的这个,有很多种排列不同的数据,处理方法自然也不同,

就好比你问个 0 到 9 这10个数,怎么组合出来结果为5 一样,没说具体的要求,那0+5 也是5,1+4也是我,这些结果你确定是你要的??

提问要想得到最快的解决,那就需要附件,同时做好结果表,并详细说明结果是怎么处理来的,

要让别人一眼就能明白你的意思!!换位思考一下,你老总给你安排一个你不清楚要怎么做的工作,那你是不是很郁闷呢??
回复

使用道具 举报

 楼主| 发表于 2012-11-6 10:01 | 显示全部楼层
无聊的疯子 发表于 2012-11-6 09:07
具体情况具体分析,你说的这个,有很多种排列不同的数据,处理方法自然也不同,

就好比你问个 0 到 9  ...

受教了,我也是头大的不行,不知道怎么才能说清楚,不是成心想考您,见谅,现将第二个要求的附件传给您

数据对比.zip

19.42 KB, 下载次数: 0

回复

使用道具 举报

 楼主| 发表于 2012-11-6 10:07 | 显示全部楼层
无聊的疯子 发表于 2012-11-5 23:29
研究了半天算是搞懂了,中间的剪切 位置有可能与你想的不一样,因为没有更多相关数据,所以就只有根据附件来 ...

我怎么才能加您为好友呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-13 06:12 , Processed in 0.354612 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表