excel如何在一个单元格字符串内找出最大值?
发布网友
发布时间:2022-05-30 11:06
我来回答
共4个回答
热心网友
时间:2023-10-17 04:14
按alt+f11,插入--模块,复制以下代码粘贴,alt+f4,工具--宏--安全性--低--确定,alt+f8,选最大值--执行。
Sub 最大值()
Dim h, g, z(), k, c, b
For h = 2 To 65535
If Cells(h, 1) <> "" Then
g = 1
k = 1
c = 0
ReDim z(Len(Cells(h, 1)))
For g = g To Len(Cells(h, 1))
If Mid(Cells(h, 1), g, 1) = "+" Then
c = c + 1
z(c) = Val(Mid(Cells(h, 1), k, g - k))
k = g + 1
ElseIf Mid(Cells(h, 1), g, 1) = "*" Then
k = g + 1
End If
Next g
z(0) = Val(Mid(Cells(h, 1), k, g - k))
For b = 1 To c
If z(0) > z(b) Then
z(0) = z(0)
Else
z(0) = z(b)
End If
Next b
Cells(h, 2) = z(0)
End If
Next h
End Sub
热心网友
时间:2023-10-17 04:14
如果:A列30*25+28*20 是一个整体话,很难按照你这种逻辑取出最大值。不是不能,是很难。
提供两种思路,用简单函数如find,left,right,等等把A列的数值截出来,然后用if一个一个比较,很麻烦,且只能一个一个的解析比较,通用性不好。另一种思路就是用VBA写一个自定义函数。
两种都很难实现,建议放弃。。。
热心网友
时间:2023-10-17 04:15
你说的不详细!
最好有个图像的例子
看不出来那个是A列那个是B列
中间的符号都是加号和乘号吗?追问嗯,只有*与+两个符号
热心网友
时间:2023-10-17 04:16
将数据分列后,求MAX