Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2381|回复: 4

[已解决]有劳大侠小编一下宏:除零除空值排列数据!谢谢!(已解决)

[复制链接]
发表于 2011-8-31 19:14 | 显示全部楼层 |阅读模式
本帖最后由 skyborn 于 2011-8-31 20:47 编辑

本人是VBA小白,实际这个问题应该比较容易,当然是对懂VBA的各位大侠而言!有劳大侠了,题如附件,一列数据,存在零值及空值,现在想通过宏功能,自动将零值空值去除,然后按原来的顺序重排!谢谢大侠了。
最佳答案
2011-8-31 19:46
回复 skyborn 的帖子


数据给你放在 数据表的 E列,E3开始的,方便和你的D列对照,看看效果

  1. Sub 取数()
  2.   arr = Sheet1.Range("B3:B" & Sheet1.Range("B65536").End(xlUp).Row)
  3.   For x = 1 To UBound(arr)
  4.     If arr(x, 1) <> "" And arr(x, 1) <> 0 Then
  5.       h = h + 1
  6.       arr(h, 1) = arr(x, 1)
  7.     End If
  8.   Next
  9.   Sheet1.Range("E3").Resize(h, 1) = arr
  10. End Sub
复制代码

Book2.rar

5.8 KB, 下载次数: 9

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2011-8-31 19:46 | 显示全部楼层    本楼为最佳答案   
回复 skyborn 的帖子


数据给你放在 数据表的 E列,E3开始的,方便和你的D列对照,看看效果

  1. Sub 取数()
  2.   arr = Sheet1.Range("B3:B" & Sheet1.Range("B65536").End(xlUp).Row)
  3.   For x = 1 To UBound(arr)
  4.     If arr(x, 1) <> "" And arr(x, 1) <> 0 Then
  5.       h = h + 1
  6.       arr(h, 1) = arr(x, 1)
  7.     End If
  8.   Next
  9.   Sheet1.Range("E3").Resize(h, 1) = arr
  10. End Sub
复制代码

回复

使用道具 举报

发表于 2011-8-31 20:38 | 显示全部楼层
  1. Sub 取数()
  2.     On Error Resume Next
  3.     With Range("b2:b" & Cells(Rows.Count, 2).End(3).Row)
  4.         .Replace 0, "", xlWhole
  5.         .SpecialCells(xlCellTypeBlanks).EntireRow.Delete
  6.     End With
  7. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2011-8-31 20:47 | 显示全部楼层
谢谢2楼的大侠!
回复

使用道具 举报

发表于 2013-2-19 14:16 | 显示全部楼层
求教一下,在VBA小白的基础上,如果原数据有4列,且从sheet1一直到sheet4,通过宏功能,自动将零值空值去除,然后按原来的顺序重排到一张新表上。详见附件“举例”,怎么操作,谢谢了

举例.rar

9.37 KB, 下载次数: 1

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-9 01:58 , Processed in 0.242923 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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