Excel 格式化单元格,其值覆盖另一个单元格的值

Excel 格式化单元格,其值覆盖另一个单元格的值

我在 A1 中有一个数字(假设为10)。这代表测试中的答案数量。

在 B1 中我有测试中正确答案的数量(假设这个数字是6)。

在 B1 中我希望能够输入数字6并将其显示为6/10/10从单元格 A1 中提取的位)。

但是单元格的值仍然6只是。这只是为了视觉效果,实际的单元格可以在上面执行公式等。

如果我选择 B1 并输入数字,7它将在视觉上更新为7/10

不使用花哨的 VBA 工具是否可行?非常感谢

答案1

您可以使用下一个单元格并在其中添加 '/10 来显示,/10这样您就可以直观地看到它。或者,您可以在新单元格中使用此公式,=TEXT.CONCATENATE(A1,"/10")该公式将给出6/10值,并在 A1 更改时更新它。

请注意,您可以在不同的工作表中输入 text.concatenate 公式,这样您就可以拥有一个包含所有值的工作表和一个用于查看结果的工作表。只需确保两个工作表都属于同一工作簿即可。

答案2

恐怕没有“花哨的 VBA 东西”就无法实现这一点。没有 VBA 你能做的最好的事情就是分配一个自定义格式,并将B1A1硬编码在格式中。

要以此方式设置格式,请右键单击B1并选择Format Cells...。选择类别Custom并输入以下格式。

#"/10"

但是当然您可以使用 VBA 轻松实现您的目标。

您只需将下面的代码添加到与这些单元格的工作表关联的模块中。

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.Range("A1")) Is Nothing Then
    Me.Range("B1").NumberFormat = "#" & Chr(34) & "/" & CStr(Me.Range("A1").Value) & Chr(34)
End If
End Sub

每次工作表上的值发生变化时都会触发此代码。如果发生变化的值为A1,它会重置 的数字格式B1。如果更改的值位于不同的单元格中,则不会执行任何操作。

有关将此代码添加到工作簿的说明,请参阅我的答案在这里。请务必遵循添加由事件触发的代码的步骤。

答案3

作为一种解决方法,你可以尝试自定义格式

#"/10"

但不好的是,/10 是手动的,您无法引用单元格。不过,您可以简单地选择一组单元格并应用此格式!

为此,右键单击一个单元格并选择格式化单元格。

在类别底部(数字选项卡下)选择自定义

在类型框下输入上述代码(覆盖已有内容,因为它会自动将其保存为新条目)。

现在,将此格式应用于您想要的单元格。当然,它不会检测值是否准确,例如 12/10!

在此处输入图片描述

相关内容