Excel精英培训网

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

[已解决]如何找如何找回漏掉的数字

[复制链接]
发表于 2015-10-12 22:05 | 显示全部楼层 |阅读模式
例如A栏有一段顺序的数字:

3578112
3578113
3578114
3578116
3578117
3578120
3578121
3578122
3578123
3578124
3578129
3578130
3578131
3578132
3578133
3578134
3578135


遗漏的数字有:

3578115
3578118
3578119
3578125
3578126
3578127
3578128


我想把它放在B栏,那如何写VBA呢?谢谢大家!
最佳答案
2015-10-13 10:04
  1. Sub tt()
  2.     arr = Range("a2:a" & [a65536].End(3).Row)
  3.     xmax = Application.WorksheetFunction.Max(arr)
  4.     xmin = Application.WorksheetFunction.Min(arr)
  5.     ReDim xrr(xmin To xmax)
  6.     ReDim brr(xmin To xmax, 1 To 1)
  7.     For i = 1 To UBound(arr)
  8.         xrr(arr(i, 1)) = 1
  9.     Next
  10.     For i = xmin To xmax
  11.         If xrr(i) <> 1 Then
  12.             n = n + 1
  13.             brr(xmin - 1 + n, 1) = i
  14.         End If
  15.     Next
  16.     If n > 0 Then [b2].Resize(n, 1) = brr
  17. End Sub
复制代码
发表于 2015-10-12 23:40 | 显示全部楼层
回复

使用道具 举报

发表于 2015-10-12 23:42 | 显示全部楼层
本帖最后由 金樽空对月 于 2015-10-13 09:46 编辑

详见附件,内详。

找数.zip

12.03 KB, 下载次数: 6

售价: 4 个金币  [记录]

回复

使用道具 举报

发表于 2015-10-12 23:45 | 显示全部楼层
看一下是不是你要的效果?
回复

使用道具 举报

发表于 2015-10-13 10:04 | 显示全部楼层    本楼为最佳答案   
  1. Sub tt()
  2.     arr = Range("a2:a" & [a65536].End(3).Row)
  3.     xmax = Application.WorksheetFunction.Max(arr)
  4.     xmin = Application.WorksheetFunction.Min(arr)
  5.     ReDim xrr(xmin To xmax)
  6.     ReDim brr(xmin To xmax, 1 To 1)
  7.     For i = 1 To UBound(arr)
  8.         xrr(arr(i, 1)) = 1
  9.     Next
  10.     For i = xmin To xmax
  11.         If xrr(i) <> 1 Then
  12.             n = n + 1
  13.             brr(xmin - 1 + n, 1) = i
  14.         End If
  15.     Next
  16.     If n > 0 Then [b2].Resize(n, 1) = brr
  17. End Sub
复制代码
回复

使用道具 举报

发表于 2015-10-13 10:05 | 显示全部楼层
请看附件。

工作簿1.rar

9.05 KB, 下载次数: 7

回复

使用道具 举报

 楼主| 发表于 2015-10-13 12:47 | 显示全部楼层
金樽空对月 发表于 2015-10-12 23:45
看一下是不是你要的效果?

好厉害啊,怎么可以写成这样,代码看都看不明白,可以解释一下吗?VBA真的太难了。
回复

使用道具 举报

 楼主| 发表于 2015-10-13 12:50 | 显示全部楼层
grf1973 发表于 2015-10-13 10:04

同谢啊,为什么和楼上写法不同但效果却一样,真神奇
回复

使用道具 举报

发表于 2015-10-13 14:52 | 显示全部楼层
leehom001 发表于 2015-10-13 12:50
同谢啊,为什么和楼上写法不同但效果却一样,真神奇

思路不一样,方法也是不一样的。
回复

使用道具 举报

发表于 2015-10-13 14:59 | 显示全部楼层
leehom001 发表于 2015-10-13 12:50
同谢啊,为什么和楼上写法不同但效果却一样,真神奇

楼上的思路是找到一个,提出来一个,而楼下的则是全部找到后,一起提出来,相对来说楼下的思路要更成熟些,而且运行速度要快。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 20:15 , Processed in 0.422415 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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