Vba 第三个单元格中两个单元格之间的差异
我试图制作一个VBA脚本,计算两个单元格之间的差异,并将其放置在第三个单元格中。它应在以下情况下工作:Vba 第三个单元格中两个单元格之间的差异,vba,excel,difference,Vba,Excel,Difference,我试图制作一个VBA脚本,计算两个单元格之间的差异,并将其放置在第三个单元格中。它应在以下情况下工作: 选择三个单元格。其中两个有值,第三个为空 VBA脚本正在运行 VBA脚本计算具有值的单元格之间的差异 差异记录在第三个(空白)单元格中 正如您所理解的,这样一个VBA脚本应该能够记录右边单元格中与下面、左边或上面的值之间的差异 我是vba的新手,所以我的vba编码很大程度上取决于论坛讨论过的类似问题。但这次我找不到解决办法。试试这个: Dim rng As Range, cel As Rang
Dim rng As Range, cel As Range
Set rng = Selection
If rng.Cells.Count <> 3 Then Exit Sub
With Application.WorksheetFunction
If .CountA(rng) <> 2 Then Exit Sub
For Each cel In rng
If cel.Value = "" Then
Select Case True
Case cel.Address = rng(1).Address
cel.Value = rng(2)-rng(3)
Case cel.Address = rng(2).Address
cel.Value = rng(1)-rng(3)
Case cel.Address = rng(3).Address
cel.Value = rng(1)-rng(2)
End Select
Exit For
End If
Next
End With
Dim rng As Range,cel As Range
设置rng=选择
如果rng.Cells.Count为3,则退出Sub
使用Application.WorksheetFunction
如果.CountA(rng)2,则退出Sub
对于rng中的每个cel
如果cel.Value=”“,则
选择Case True
案例单元地址=rng(1)地址
单元值=rng(2)-rng(3)
案例单元地址=rng(2)地址
单元值=rng(1)-rng(3)
案例单元地址=rng(3)地址
单元值=rng(1)-rng(2)
结束选择
退出
如果结束
下一个
以
未经测试,所以由您决定。为simoco编辑L42,
第三个单元格中两个单元格之间的差异
,不是sum:)@simoco哈哈,对不起,我的坏消息。我一定在打瞌睡。:)您总是想从较大的数字中减去较小的数字吗?还是左上角的最大值与右下角的最大值?或者与这两种情况相反?因为这些差异会对最终结果产生重大影响。或者你只是想要绝对的差异?(减去任何一个数字,且解总是数字的正差)?当所选内容不是3个单元格(其中1个为空)时,是否希望显示错误消息?如果选择了3个以上的单元格,是否希望宏继续并将值放在最左上角或最右下角的空单元格中,使用两个最左上角或最右下角单元格之间的差值?如果宏可以计算“角”单元格和“中间”单元格之间的差值,那就最好了。如下所示:从左到右选择[100(角)、20(中)、空白(角)]->100-20=80而不是20-100=-80。如果这个公式能保存下来,那就太好了。L42的答案很好,但结果保存为值。另一个好处是能够在非连续范围内工作。例如,在第一选择中,计算(100, 20)和第二选择之间的差值的值是计算差异的空白单元。