网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
12月13日漏签0天
excel吧 关注:281,909贴子:1,556,097
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 16回复贴,共1页
<<返回excel吧
>0< 加载中...

在网上看到求区间出现次数的代码,想请各位按我要求修改一下,谢

  • 只看楼主
  • 收藏

  • 回复
  • 孟军长666
  • 日新月E
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


  • 孟军长666
  • 日新月E
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


2025-12-13 18:33:05
广告
不感兴趣
开通SVIP免广告
  • 孟军长666
  • 日新月E
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


  • 孟军长666
  • 日新月E
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


  • ChinaMagicHerb
  • E通百通
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
回答你3楼的问题
4楼的问题会更简单一些,你在下面代码的基础上稍作修改即可
Sub ttt()
Dim RNG As Range, r As Range
Dim d As Object, dd As Object
Dim a, b
Dim i%
Set RNG = [B1:F22]
Set d = CreateObject("scripting.dictionary")
For Each r In RNG
If Not d.exists(r.Value) Then
d.Add r.Value, 1
Else
d(r.Value) = CInt(d(r.Value)) + 1
End If
Next
For i = 1 To 100
If Not d.exists(i) Then d.Add i, 0
Next
Set dd = CreateObject("scripting.dictionary")
For i = 0 To d.Count - 1
If Not dd.exists(d.items()(i)) Then
dd.Add d.items()(i), d.keys()(i)
Else
dd(d.items()(i)) = dd(d.items()(i)) & "," & d.keys()(i)
End If
Next i
ReDim a(dd.Count - 1, 1)
For i = 0 To dd.Count - 1
a(i, 0) = dd.keys()(i)
a(i, 1) = dd.items()(i)
Next
b = BS2D(a)
For i = 0 To dd.Count - 1
[G1].Offset(i + 1, 0) = b(i, 0)
[H1].Offset(i + 1, 0) = b(i, 1)
Next
End Sub
Private Function BS2D(arr)
Dim i%, j%, holdInt%, holdFloat As Double
Dim n%: n = UBound(arr)
For i = 0 To n
For j = 0 To n
If arr(j, 0) > arr(i, 0) Then 'ascending
holdFloat = arr(j, 0): holdInt = arr(j, 0)
arr(j, 0) = arr(i, 0): arr(j, 0) = arr(i, 0)
arr(i, 0) = holdFloat: arr(i, 0) = holdInt
End If
Next j
Next i
BS2D = arr
End Function


  • 菠萝蜜
  • E览无余
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

Option Explicit
Sub abc()
 Dim i, j, t, a, d
 Set d = CreateObject("scripting.dictionary")
 For i = 1 To 100
  d(i) = 0
 Next
 a = Range("b1:f" & [b1].End(xlDown).Row).Value
 For i = 1 To UBound(a)
  For j = 1 To UBound(a, 2)
   d(a(i, j)) = d(a(i, j)) + 1
  Next
 Next
 a = Application.Transpose(Array(d.keys, d.items))
 For i = 1 To UBound(a) - 1
  For j = i + 1 To UBound(a)
   If a(i, 2) > a(j, 2) Then
    t = a(i, 1): a(i, 1) = a(j, 1): a(j, 1) = t
    t = a(i, 2): a(i, 2) = a(j, 2): a(j, 2) = t
   End If
  Next
 Next
 [h2].Resize(UBound(a), 2) = a
End Sub


  • 菠萝蜜
  • E览无余
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Option Explicit
Sub abc()
 Dim i, j, m, a, d
 Set d = CreateObject("scripting.dictionary")
 a = Range("b1:f" & [b1].End(xlDown).Row).Value
 ReDim b(1 To 100, 1 To 1)
 For i = 1 To UBound(a)
  For j = 1 To UBound(a, 2)
   d(a(i, j)) = 1
  Next
 Next
 For i = 1 To 100
  If Not d.exists(i) Then m = m + 1: b(m, 1) = i
 Next
 With [h:h]
  .ClearContents
  If m > 0 Then .Resize(m) = b
 End With
End Sub


  • qianboccp
  • E览无余
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Sub ccp()
Dim d, arr1
Range("H2:H1000").Clear
Set d = CreateObject("Scripting.Dictionary")
For i = 1 To 100
d(i) = 0
Next
arr1 = Range("B1:F13")
For j = 1 To 5
For k = 1 To 13
If d.Exists(arr1(k, j)) Then
d.Remove (arr1(k, j))
End If
Next
Next
t = d.Keys
[H2].Resize(d.Count, 1) = Application.Transpose(t)
Set d = Nothing
End Sub


2025-12-13 18:27:05
广告
不感兴趣
开通SVIP免广告
  • 随手拈来
  • 多才多E
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
只会那么点公式


  • 我鲸呆了
  • 日新月E
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
试试


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 16回复贴,共1页
<<返回excel吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示