永发信息网

excel如何用VBA实现一列满足多个条件的循环计数程序?比如:c列有很多数据,在B列的B1求出满

答案:3  悬赏:50  手机版
解决时间 2021-04-05 02:23
excel如何用VBA实现一列满足多个条件的循环计数程序?比如:c列有很多数据,在B列的B1求出满
最佳答案
这个用countifs应该很好实现,不卡吧
=IF(C1=0,0,COUNTIFS(C:C,">"&C1-2,A:A,"<"&C1+2))
你试试
不行,再给你写代码追问因为数据很大,所以函数用多了很卡,表格打开也很慢,我用了两个for循环,数据对不上,也有点慢,好像要用字典,但不会啊追答字典我试过,没有啥好办法,想用字典作为数值,结合Countifs函数,计算结果,出错了。
下面是数组,结果还行,我电脑上运行10s左右吧,你试试看:
Sub m()
Dim brr(2000)
arr = Range("C1:C2000")
For i = 1 To UBound(arr)
k = 0
For j = 1 To UBound(arr)
If arr(j, 1) > arr(i, 1) - 2 And arr(j, 1) < arr(i, 1) + 2 Then
k = k + 1
End If
Next j
brr(i - 1) = k
Next i
[B1].Resize(2000, 1) = Application.Transpose(brr)
End Sub追问非常感谢,我试试完美解决,非常感谢
全部回答
问一下,是要从B1到B2到B3直到Bn, 都要设置吗?追问是啊,要做循环追答Sub 秙1_Click()
For i = 1 To Sheet2.UsedRange.Rows.Count
Dim num As Integer
num = 0
For k = 1 To Sheet2.UsedRange.Rows.Count
Cnum = Sheet2.Range("C" & i).Value
Cnum2 = Sheet2.Range("C" & k).Value
If Cnum2 > Cnum - 2 And Cnum2 < Cnum + 2 Then
num = num + 1
End If
Next k
Sheet2.Range("B" & i).Value = num
Next i
End Sub
大于小于是和谁做比较 最好截个图来 说清楚意图追问是C列中所有的值满足大于小于的个数追答sub a()
dim arr(1 to 2000,1),arr1(1 to 2000,1),x,y,h
arr=range("c1:c2000")
for x=1 to 2000
for y=1 to 2000
if arr(x,1)=0 then
arr1(x,1)=0
elseif arr(x,1)arr(y,1)-2 then
h=h+1
arr1(x,1)=h
next y
next x
endif
range("b1").resize(2000)=arr1
end sub
用的最简单的循环完成,手机输入没验证,粘贴代码,自己修改下追问非常感谢,我试试,你太厉害了追答把endif放在next y上面,resize(2000)改为resize(2000,1)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
淘宝网买东西点击确认付款后,怎么没有反应了
下列词语书写完全正确的一项是A.流言蜚语 死
这样的收据有没有法律效力
八字行大运是什么意思,命理学中的流年大运旺
为什么我的手机屏幕按键有时不管用,重启一下
老山洋槐蜜怎么样
下列画线字的读音,与所给注音全都相同的一组
老师歌颂学校诗歌,小学赞美学校的诗歌
JBL RADIAL 音响是否可调重低音?怎样调?电
求雪糕的名字啊,做设计用。谢谢!!!
拉丝黄铜会不会掉色
词语搭配有误的一项是A.掌握(要领、方法、技
优步,滳滴公司是国内还是国外公司
期货日内来回操作是什么意思。
活期存款利息多久结算,活期存款利息及天数怎
推荐资讯
哈尔滨市那个技校是国家认证的正 归 学校
淘宝云客服跟商家云客服的培训中心是不是同一
安全寄语手抄报给家人,怎样写烈士寄语
一名体育运动员因担心自己不能如大家希望得到
判断题不能够遗传的性状是隐性遗传,能遗传的
本科毕业生去做云南大学旅游文化学院的辅导员
南京机场到苏州怎么走,南京市区到禄口机场怎
二胎家庭中大孩子的心理问题都有哪些
诗婷露雅哪几种是睡眠面膜
推荐2017结果吉日
2016年第四届全解杯作文大赛河南区
我想知道摩托车罚款该去哪里交
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?