Excel精英培训网

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

[VBA] VBA截取A列计算五种属性最大连续

[复制链接]
发表于 2016-10-13 22:19 | 显示全部楼层 |阅读模式

VBA截取A列计算五种属性最大连续


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2016-10-14 11:31 | 显示全部楼层
简单的就不解释了。
  1. Sub grf()
  2.     arr = Range("a1:a" & [a65536].End(3).Row)
  3.     Set d = CreateObject("scripting.dictionary")
  4.     For i = 1 To UBound(arr)
  5.         x = Left(arr(i, 1), 1) & Mid(arr(i, 1), 3, 1)
  6.         If Not d.exists(x) Then
  7.             d(x) = 1: p = 1
  8.         Else
  9.             y = Left(arr(i - 1, 1), 1) & Mid(arr(i - 1, 1), 3, 1)
  10.             If y = x Then
  11.                 p = p + 1
  12.                 If p > d(x) Then d(x) = d(x) + 1
  13.             Else
  14.                 p = 1
  15.             End If
  16.         End If
  17.     Next
  18.     [b7].Resize(d.Count, 2) = Application.Transpose(Array(d.keys, d.items))
  19. End Sub
复制代码

评分

参与人数 1 +3 收起 理由
laoau138 + 3 来学习

查看全部评分

回复

使用道具 举报

发表于 2016-10-14 19:16 | 显示全部楼层
Sub 雄鹰()
Dim arr
Set d = CreateObject("scripting.dictionary")
arr = Range("a1:a" & Cells(Rows.Count, 1).End(xlUp).Row + 1)
ReDim brr(1 To UBound(arr), 1 To 2)
For i = 1 To UBound(arr)
     t = Mid(arr(i, 1), 1, 1) & Mid(arr(i, 1), 3, 1)
     If t <> "" And Not d.exists(t) Then n = n + 1: d(t) = n: brr(n, 1) = t
Next i
For Each k In d.keys
     s = 0
     For i = 1 To UBound(arr)
         t = Mid(arr(i, 1), 1, 1) & Mid(arr(i, 1), 3, 1)
         If k = t Then
            m = m + 1
         Else
            If m > s Then s = m
            m = 0
         End If
     Next i
     brr(d(k), 2) = s
Next k
[b1].Resize(UBound(brr), 2) = brr
End Sub

评分

参与人数 1 +3 收起 理由
laoau138 + 3 来学习

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2016-10-14 19:26 | 显示全部楼层
雄鹰2013 发表于 2016-10-14 19:16
Sub 雄鹰()
Dim arr
Set d = CreateObject("scripting.dictionary")

终于来论坛了
回复

使用道具 举报

 楼主| 发表于 2017-1-9 19:07 | 显示全部楼层
本帖最后由 laoau138 于 2017-2-12 21:32 编辑
雄鹰2013 发表于 2016-10-14 19:16
Sub 雄鹰()
Dim arr
Set d = CreateObject("scripting.dictionary")


http://www.excelpx.com/thread-427650-1-1.html

VBA计算等距离间隔循环相同数字
回复

使用道具 举报

 楼主| 发表于 2017-2-12 21:32 | 显示全部楼层
雄鹰2013 发表于 2016-10-14 19:16
Sub 雄鹰()
Dim arr
Set d = CreateObject("scripting.dictionary")

http://www.excelpx.com/thread-427650-1-1.html

VBA计算等距离间隔循环相同数字

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 10:42 , Processed in 0.356352 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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