ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何使用VBA求符合条件中号码与号码之间出现间隔?

如何使用VBA求符合条件中号码与号码之间出现间隔?

作者:绿色风 分类: 时间:2022-08-17 浏览:99
楼主
wise
Q:如何使用VBA求符合条件中号码与号码之间出现间隔?
如图所示:

 
在B1输入一组号码,B2开始分别显示出此号码在A列数据出现中的间隔(指此号码与此号码中的单元格个数)?
A:ALT+F11→插入模块→模块中输入以下代码:
  1. Sub test()
  2.     Dim c As Range, arr, temp$, firstAddress$, m&, i&
  3.     temp = [B1]
  4.     i = 1
  5.     arr = Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row)
  6.     With Range("A:A")
  7.         Set c = Range("A:A").Find(temp, , , xlWhole)
  8.         '找符合条件的单元格
  9.         If Not c Is Nothing Then
  10.         '如果c不为空值,则说明找到了相应的单元格
  11.             firstAddress = c.Address
  12.             '把找到的c的单元格地址赋予给firstAddress
  13.             Do
  14.                 m = m + 1
  15.                 '累计器
  16.                 arr(m, 1) = c.Row - i - 1
  17.                 '把相隔的行的值赋予给数组
  18.                 i = c.Row
  19.                 '把单元格的行赋予给i
  20.                 Set c = .FindNext(c)
  21.                 '继续找下一个符合条件的单元格
  22.             Loop While Not c Is Nothing And c.Address <> firstAddress
  23.             '一直循环,直到找到的地址不等于找到符合条件的第一个单元格的地址才退出
  24.         End If
  25.     End With
  26.     [A1].CurrentRegion.Offset(1, 1).ClearContents
  27.     '清空除了B1外的B列单元格区域
  28.     [B2].Resize(m, 1) = arr
  29.     '把相隔的行的数组赋予给相应的区域
  30. End Sub


号码与号码之间的间隔.rar
2楼
亡者天下
小7老实的VBA也不赖嘛
学习了

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap