任何excel单元格公式可以将自己的值除以1000吗?

时间:2013-05-23 03:31:58

标签: excel formula divide

如果我以编程方式或手动输入一个值,比方说10000,进入一个excel单元格,我需要它自动将它除以1000,这会发生吗?

No.1,我不是在询问显示格式,我需要认真更改输入的值。

No.2,该公式不适用于整个工作表。

2 个答案:

答案 0 :(得分:2)

您可以使用Worksheet更改事件来执行此操作。但是,为了确保您只执行一次而不是每次触发此事件,您都需要在某处跟踪该值。您可以在不可见的工作表,工作表上的其他位置等处执行此操作。

逻辑上,你基本上检查一个单元格被改变的时候,如果它在你希望这种情况发生的cels范围内。如果是,则通过将其映射到记录,确保它与您触摸单元格之前的值不同(未进行任何更改)。如果它已更改,您只需除以1000并更新记录。

希望这有帮助。

Private Sub Worksheet_Change(ByVal Target As Range)

'Turn off events to stop this from looping
Application.EnableEvents = False

'Let's say you want this to happen for A1:A10
'Store the value of the cells on a hidden sheet or somewhere. Here let's assume B1:B10 is the hidden record

If Target.Column = 1 Then
    If Target.Row > 0 And Target.Row < 11 Then
        If Target.Value <> Target.Offset(, 1) Then
            Target.Value = Target.Value / 1000
            Target.Offset(, 1).Value = Target.Value
        End If
    End If
End If

'Turn events back on
Application.EnableEvents = True

End Sub

很抱歉由于某种原因,格式化代码没有正确缩进代码...

答案 1 :(得分:0)

如果我是你,我会回避这一点,因为你会因为永久划分1000来重新编辑单元格而遇到问题。当然,编辑开始时你可以将数字乘以1000,但我不认为是特别健壮。

我将采用的方法是使电子表格的一个区域(用户通常不会看到)包含form = A1 / 1000的公式,并且其余的计算流程依赖于这些单元格。

这样做意味着您可以将所有内容保存在电子表格中,而无需VBA。