假设我们有一组包含值对的单元格(a_i,a_j)。有没有办法让Excel取这些值之间的差异?允许Excel理解括号和逗号语法的最简单方法是什么,以便它可以获取差异并将计算值放在括号下方/旁边?注意,出现这些值的一些单元可以是合并单元。具体地,在A1:C10的范围内,在该范围内的所有其他单元中可能存在3个合并的单元。理想的情况是能够简单地突出显示这个范围(或者只是单个块单元格),并且计算包含或不合并的单元格的差异,这些单元格包含上述格式的值对。也就是说,适用于单个单元格的解决方案,无论是否合并,都将非常有用。
答案 0 :(得分:2)
试试这个小宏:
Sub KalKulator()
Dim zum As Variant
For Each r In Selection
v = r.Text
ary = Split(Replace(Replace(v, ")", ""), "(", ""), ",")
zum = CDbl(ary(0)) + CDbl(ary(1))
r.Value = r.Value & CStr(zum)
Next r
End Sub
如果选择以下单元格:
(5,6)
(8,99)
它会将它们转换为:
(5,6)11
(8,99)107
注意#1 强>
按照编码,它将不正确处理合并的单元格。
修改#1:强>
此版本将处理合并单元格的部分实例并更正“ - ”以及
Sub KalKulator2()
Dim zum As Variant
For Each r In Selection
If r.Value <> "" Then
v = r.Text
ary = Split(Replace(Replace(v, ")", ""), "(", ""), ",")
zum = CDbl(ary(0)) - CDbl(ary(1))
r.Value = r.Value & CStr(zum)
End If
Next r
End Sub
在:
后: