VBA找单元格数据的中间名次晕,刚才问网友没问完.先看看格式,假定某个单元格里数据是7(25),9(14),01(3),45(2),236(1),8(0),小括号和逗号全是英文输入法下的,小括号外的的数字是具体数字,小括号内

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/04 05:43:20
VBA找单元格数据的中间名次晕,刚才问网友没问完.先看看格式,假定某个单元格里数据是7(25),9(14),01(3),45(2),236(1),8(0),小括号和逗号全是英文输入法下的,小括号外的的数字是具体数字,小括号内

VBA找单元格数据的中间名次晕,刚才问网友没问完.先看看格式,假定某个单元格里数据是7(25),9(14),01(3),45(2),236(1),8(0),小括号和逗号全是英文输入法下的,小括号外的的数字是具体数字,小括号内
VBA找单元格数据的中间名次
晕,刚才问网友没问完.先看看格式,假定某个单元格里数据是7(25),9(14),01(3),45(2),236(1),8(0),
小括号和逗号全是英文输入法下的,小括号外的的数字是具体数字,小括号内的数字是其次数,相同的次数按升序排列放在一起,不同的次数用逗号隔开,上述数据表示7是25次的,9是14次的,0和1都是3次的,4和5都是2次的,2,3,6都是1次的,8是0次的,可以看到有6个名次,有6个逗号,所有单元格都是这种形式的,逗号个数1-10个,现在就是统计任意单元格中逗号的个数.网友很快给出代码:
Function DouHao(r,c) 'r表示行号,c表示列号
arr = Split(Cells(r,c).Value,",")
DouHao = UBound(arr)
End Function
现在的代码要求是:统计中间名次,如果名次个数(即逗号个数,可以使用上面的代码)大于等于3(1-2个名次不存在中间名次之说,统计结果为空),分为两种情况,是奇数的,很好,直接就是逗号的个数加1再除以2,如果是偶数就直接除以2,截取名次之前的具体数字,例如单元格数据是7(25),9(14),01(3),45(2),236(1),8(0),那么结果就是01 如果单元格数据是347(19),89(8),056(7),1(5),2(2),则结果就是056
自定义函数形式:
Function MiddleTime(r,c)'r表示行号,c表示列号
arr = Split(Cells(r,c).Value,",")
If UBound(arr)>=3 Then
代码
Else
MiddleTime="" '逗号个数小于3个为空
End If
End Function
注意不要把次数和名次混淆了,如7(19),89(12),056(7),1(5),2(2),的中间名次是056,它的次数是7次的,代码要找的是中间名次是哪些数字,而不是其次数,即找的是056,而不是其次数7.

VBA找单元格数据的中间名次晕,刚才问网友没问完.先看看格式,假定某个单元格里数据是7(25),9(14),01(3),45(2),236(1),8(0),小括号和逗号全是英文输入法下的,小括号外的的数字是具体数字,小括号内
Function MiddleTime(r, c) 'r表示行号,c表示列号
arr = Split(Cells(r, c).Value, ",")
douhao1 = UBound(arr)
If douhao1 >= 3 Then
If douhao1 Mod 2 = 0 Then '偶数
k = Application.WorksheetFunction.Find("@", Application.WorksheetFunction.Substitute(Cells(r, c), ",", "@", douhao1 / 2)) ‘逗号个数的一半的位置
tmp = Mid(Cells(r, c), k + 1, Len(Cells(r, c)) - k) ’截取单元格一半逗号后面的文本
l = InStr(tmp, "(") - 1 ‘查找第一个(号
MiddleTime = Mid(tmp, 1, l) ’取得结果
Else
k = Application.WorksheetFunction.Find("@", Application.WorksheetFunction.Substitute(Cells(r, c), ",", "@", (douhao1 + 1) / 2 - 1)) ‘逗号数+1后除以2得到一半逗号的位置再减去1
tmp = Mid(Cells(r, c), k + 1, Len(Cells(r, c)) - k)
l = InStr(tmp, "(") - 1
MiddleTime = Mid(tmp, 1, l)
End If
Else
MiddleTime = "" '逗号个数小于3个为空
End If
End Function

VBA找单元格数据的中间名次晕,刚才问网友没问完.先看看格式,假定某个单元格里数据是7(25),9(14),01(3),45(2),236(1),8(0),小括号和逗号全是英文输入法下的,小括号外的的数字是具体数字,小括号内 VB/vba 单元格的Offset属性是什么意思?vba 单元格的Offset属性是什么意思? VBA找单元格奇数次数假定某单元格数据是19(127),236(15),0(4),8(3),45(2),7(0),其中小括号外的是具体数字,小括号内部是其次数,次数相同的已经放在一起,不同的用逗号隔开.上述数据表示1和9都是127次 VBA找单元格对应重复的数字同一列的上下两行各有10个数字,数字都在0-9之间,但是顺序是杂乱无章的,例如第23行D列数据是0294631785,第24行D列数据是2398605471,那么都23行D列与都24行D列的第一个数 excel 用VBA实现只要A1,A4,A7,B2,B5,B8,C3,C6,C9,D1,D4,D7,E2,E5,E8,F3,F6,F9等就是以3*3的矩阵为周期,只要对角线上的数据,其余的都删除,并且让下面的单元格向上补充,VBA怎么实现啊,晕.无人晓得?自己搞定了 用Vba计算同列两个相邻单元格数值相同的下一个单元格的个数 vba中怎样利用循环将不同区域单元格值的最小值和最大值找出来例如,第一列中,当x=1时,找出单元格1,7,13中的最小值和最大值,当x=2时找出单元格2,8,14中的最大值和最小值,当x=3时找出单元格3,9,1 关于vba 自定义公式 在工作表1中,A列有不清楚多少行的数据,要是B列的每个单元格与A列一一对应并且=2*pi*关于vba 自定义公式 在工作表1中,A列有不清楚多少行的数据,即有“i 行,要是B列的每个 EXCEL函数应用问题:计算某区域大于一单元格值,小于另一单元格值的单元格个数.1、最好用EXCEL里的函数直接解决;2、如果使用VBA,烦请列出源码与步骤;3、例如:有一组数据在A1:G100中,我想 VBA 如何实现 查找某一单元格值然后以所在列的数据绘制曲线例如我输入需要查询的温度就把所有相同温度的一列值绘制在同一张曲线图中.有没有源VBA程序提供 VBA单元格循环依次输入数据已知:表1单元格A1+B1=C1(表1原公式,A1数不固定)求B1依次输入0至9(循环)如果C1>20,则输入数放在F1:O1区域否则,F1:O1区域为例如:A1=15的时,B1依次输入6至9都大于20,则6 怎么在VBA比较3个单元格数值的大小并且返回3个数字,0最小,1中间,2最大这3个数在别的单元格中输出.这3个数可以是小数跟正数 代码怎么写啊 刚才谢谢你回答我问的大于等于的问题,请问,怎么连没有数字的单元格也有了填充色了呢 vba编一段函数判断一个单元格内有几个奇数,要判断的单元格是D列,每行都是一个三位数 EXCEL表格,一列数据中间有不规则空白单元格,我想对空白单元格填充上一单元格内同,怎么设置 VBA统计单元格里面逗号的个数先看看格式,假定某个单元格里数据是7(25),9(14),01(3),45(2),236(1),8(0),小括号和逗号全是英文输入法下的,小括号外的的数字是具体数字,小括号内的数字是其次数,相同 excel求解,“公式省略了相邻单元格”是什么意思注意看到中间那一列数据的单元格,里面的数据是用公式拉下来的,而有些单元格的左上角有绿色小三角形,应该是显示有错误的意思吧.为什么会 当一组数据的个数是奇数时,怎样找中间数